»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
00:04 Actualeyes left
AlexDaniel hm, what's the easiest way to split a range into several subranges? 00:08
00:08 cdg left
samcv rotor 00:08
you trying to thread it?
AlexDaniel yup
[Coke] any feedback on the levenstein search? 00:09
*levenshtein
babydrop [Coke]: some searches return a ton of results... will that levenshtein exacerbate the issue?
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
camelia rakudo-moar 0c75e5: OUTPUT«any(True)␤0.58537436␤»
samcv that's fast
m: my $words = any(<abethathetnahnet>); (0..0x20000).».uniname.contains($words).say; say now - INIT now
camelia rakudo-moar 0c75e5: OUTPUT«any(False)␤0.59398663␤»
samcv :) 00:11
half a second isn't bad
[Coke] AlexDaniel: fast enough? don't know what sift4 is.
babydrop samcv: that looks wrong.
AlexDaniel [Coke]: siderite.blogspot.com/2014/11/supe...tance.html
samcv is it
babydrop OK :)
samcv it could be. but it returns true for real words and false for words not in it
BenGoldberg m: my $words = any(<GUN LAGAR>); (0..0x20000).».uniname.contains($words).say; say now - INIT now
camelia rakudo-moar 0c75e5: OUTPUT«any(True, True)␤0.6326179␤»
timotimo sounds like it'd stringify the names of all those characters into a single string
babydrop samcv: you're calling .contains on one huge string
AlexDaniel [Coke]: it's like levenshtein but much faster
samcv yes 00:12
babydrop
.oO( premature optimization... )
AlexDaniel [Coke]: for example, we're using in on whateverables (even though we didn't need any speed boost)
it*
samcv well that's the theoretical maximum speed it can go babydrop
doing contains on one string
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;
camelia rakudo-moar 0c75e5: OUTPUT«73␤8.45589095␤»
babydrop timotimo: "in 3 hours"
00:14 mawkish left
babydrop forgets if RabidGravy ever confirmed his 00:14
00:14 mawkish joined
[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 );
camelia rakudo-moar 0c75e5: OUTPUT«foofoofoofoofooTrue␤»
AlexDaniel [Coke]: sure, that's just an idea
BenGoldberg m: my $its_a_seq = map { print "foo"; True }, ^5; say "bar"; 00:16
camelia rakudo-moar 0c75e5: OUTPUT«bar␤»
[Coke] (easy enough to switch out with a new algorithm if someone wants, though)
BenGoldberg m: my $its_a_seq = map { print "foo"; True }, ^5; say any($its_a_seq);
camelia rakudo-moar 0c75e5: OUTPUT«foofoofoofoofooany(True, True, True, True, True)␤»
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␤»
babydrop merge it :}
BenGoldberg Would anything break if any(Seq) did not unlazy the contents of the Seq? 00:18
timotimo babydrop: huh, really? interesting.
timotimo is currently reading the previous post, about QAST
00:20 girafe left 00:22 girafe joined
AlexDaniel I have a feeling that this is not going to fit 00:22
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
camelia rakudo-moar 0c75e5: OUTPUT«PENGUIN␤2.8917120␤»
AlexDaniel hm 00:23
00:23 Actualeyes joined
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»
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
evalable6 AlexDaniel, rakudo-moar 0c75e5d: OUTPUT«PENGUIN␤3.0042219»
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
evalable6 AlexDaniel, rakudo-moar 0c75e5d: OUTPUT«PENGUIN␤1.7202091»
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
evalable6 AlexDaniel, rakudo-moar 0c75e5d: OUTPUT«PENGUIN␤2.62765727»
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»
AlexDaniel ok enough
well screw it then, let's say 1.72 is good enough
tbrowder babydrop: i'm looking for my advent post and something is wrong--should be showing up now, no? 00:25
00:26 lucasb left
timotimo apparently it's scheduled to show up in 3 hours 00:26
babydrop tbrowder: it's scheduled for 3 hours from now
timotimo Scheduled for: Dec 12, 2016 @ 02:58 Edit 00:27
tbrowder ok, i can't find it anywhere in wordpresss--had me worried
timotimo right, only findable in the admin
perl6advent.wordpress.com/wp-admin/edit.php - this part of the admin console has it
tbrowder whew, thanks! 00:28
babydrop sees it in wordpress.com/posts/scheduled/perl...dpress.com
You just have to select "Everyone" instead of just "Me" 00:29
[Coke] m: / ',' <-[ ]> /
camelia rakudo-moar 0c75e5: OUTPUT«===SORRY!===␤Iteration past end of iterator␤»
[Coke] That seems LTA> 00:30
timotimo oh, good find
tbrowder hm, no wonder wordpress sucks rocks...
we definitely need our own system...
00:32 mawkish left, mawkish joined
babydrop m: /<-[]>/ 00:33
camelia rakudo-moar 0c75e5: OUTPUT«===SORRY!===␤Iteration past end of iterator␤»
babydrop m: /<[]>/
camelia ( no output )
[Coke] m: / <-[ ]> /
camelia rakudo-moar 0c75e5: OUTPUT«===SORRY!===␤Iteration past end of iterator␤»
timotimo tbrowder: are you going to make the post released now?
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:35
timotimo strange 00:37
tbrowder i guess i can force it--should i?
timotimo anyway, i just read the scheduled version and am going to bed now :)
so to me it makes no difference now :P
samcv oh AlexDaniel i fixed the problem 00:40
we can do it in
00:40 wamba left
samcv like .2 seconds 00:40
hold on
00:41 mawkish left 00:42 mawkish joined
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
oh well
would have been nice
AlexDaniel with nqp ops, huh? 00:44
samcv yeah
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
samcv it does it like.
camelia rakudo-moar 0c75e5: OUTPUT«PENGUIN␤0.68539801␤»
AlexDaniel here
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
evalable6 AlexDaniel, rakudo-moar 0c75e5d: OUTPUT«PENGUIN␤0.584401»
samcv m: use nqp; nqp::codepointfromname.say; say now - INIT now
camelia rakudo-moar 0c75e5: OUTPUT«===SORRY!===␤Arg count 0 doesn't equal required operand count 2 for op 'getcpbyname'␤»
samcv m: use nqp; nqp::codepointfromname('PENGUIN').say; say now - INIT now 00:45
camelia rakudo-moar 0c75e5: OUTPUT«128039␤0.01494175␤»
samcv .01 seconds
AlexDaniel :-|
babydrop m: eager ^0x20000; say now - INIT now
camelia rakudo-moar 0c75e5: OUTPUT«0.05801395␤»
AlexDaniel yea, that would be nice
samcv AlexDaniel, would be cool if it tried that operation first and if so reply with that instantly
babydrop m: eager (^0x20000)».uniname; say now - INIT now
camelia rakudo-moar 0c75e5: OUTPUT«0.49742634␤»
AlexDaniel samcv: 0.59s is kinda like instantly
babydrop Create the list once on startup?
And use the uninamed version for all lookups 00:46
AlexDaniel babydrop: ooooooooooooooooooh
samcv my bot in another channel does that
it creates a hash of all of them
AlexDaniel right, now I remember
samcv but that's not the main reason the bot is slow though
it won't speed it up that much
AlexDaniel come on, 0.59s! That's super fast! 00:47
samcv oh
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
this?
AlexDaniel yes
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
camelia rakudo-moar 0c75e5: OUTPUT«PENGUIN␤0.6941767␤»
samcv yeah that is fast
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␤␤»
samcv yeah that's good
SmokeMachine is this expected?
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
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…»
samcv cool
AlexDaniel hm wait 00:49
babydrop SmokeMachine: could be improved
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
camelia rakudo-moar 0c75e5: OUTPUT«PENGUIN␤0.19691999␤»
samcv does it find all the words though?
babydrop m: &infix:<~~>, \(Int, UInt)
camelia rakudo-moar 0c75e5: OUTPUT«WARNINGS for <tmp>:␤Useless use of &infix:<~~> in sink context (lines 1, 1)␤»
babydrop SmokeMachine: but to answer the question: yes, UInt is a subset of Int 00:50
d: &infix:<~~>, \(Int, UInt)
s: &infix:<~~>, \(Int, UInt)
SourceBaby babydrop, Sauce is at github.com/rakudo/rakudo/blob/0c75...Mu.pm#L821
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
evalable6 AlexDaniel, rakudo-moar 0c75e5d: OUTPUT«END OF TRANSMISSION BLOCK␤PARTIAL LINE BACKWARD␤LATIN CAPITAL LETTER C WITH DOT ABOVE␤LATIN SM…»
AlexDaniel, Full output: gist.github.com/c2459aed25182d894c...c77e8a41e8
AlexDaniel unicodable6: A B C D
unicodable6 AlexDaniel, U+0017 END OF TRANSMISSION BLOCK [Cc] (␗)
AlexDaniel, U+008C PARTIAL LINE BACKWARD [Cc] ()
AlexDaniel, U+010A LATIN CAPITAL LETTER C WITH DOT ABOVE [Lu] (Ċ)
AlexDaniel, gist.github.com/ 00:51
AlexDaniel thank you very much!
samcv: yes, these are all! 00:53
samcv sweet
SmokeMachine babydrop: thanks... 00:54
00:56 kyclark joined
AlexDaniel samcv: how can it be so much faster, I don't get it :o 00:56
samcv hmm 00:57
it is awesome tho
but interesting how much faster it is
but uniname is really fast tho
it goes straight through almost to moarvm 00:58
AlexDaniel samcv: about 9 times
than the current version of unicodable
samcv yeah
i mean it's really fast, i mean even uniprop which is a lil slower
takes 8 seconds on my laptop to go through all unicode symbols 10 times
so 10 times 0x1FFFF 00:59
it's always been the .contains part and calling it so many times, but. i think
it's because no junctions
^ 01:00
babydrop SmokeMachine: wanna fix that bug?
samcv at least a big part
babydrop SmokeMachine: it fails in this check: github.com/rakudo/rakudo/blob/nom/.../Int.pm#L6
SmokeMachine: and it should be where { not .defined or $_ >= 0 };
SmokeMachine is it only that? 01:01
babydrop: ^^
01:02 canopus left
babydrop SmokeMachine: yup 01:02
m: Int >= 0
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␤␤»
babydrop m: quietly Int >= 0
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␤␤»
babydrop I said quietly!
timotimo that's a compile-time warning :P
01:02 _28_ria joined
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
well... undefined Ints
SmokeMachine babydrop: I got it! :)
01:03 _28_ria left
SmokeMachine babydrop: can I try to fiz that? 01:03
*fix 01:04
samcv m: my subset UInt of Int where * >= 0 or *.defined; (UInt ~~ Int).say
camelia rakudo-moar 0c75e5: OUTPUT«True␤»
samcv that fixes it
01:04 _28_ria joined 01:05 kyclark left
babydrop ummm 01:05
hehehe
samcv: I see three mistakes :}
samcv yeah
i just noticed
01:05 kyclark joined
samcv ha 01:05
babydrop samcv: the where * >= 0 or *.defined takes 2 args, so you're not checking the same arg 01:06
samcv yeah
it was poorly thought out
babydrop But it works! :P
samcv m: my subset UInt of Int; 01:07
camelia ( no output )
samcv fixed^
i have often thought about creating a perl 6 implementation which only implements roast
TimToady m: (* >= 0 or *.defined).arity.say
camelia rakudo-moar 0c75e5: OUTPUT«1␤»
01:07 canopus joined
samcv and hardcodes all the values 01:07
babydrop :o
TimToady * doesn't go past 'or' 01:08
babydrop Thanks.
SmokeMachine babydrop: should I create any test?
AlexDaniel samcv: interesting. You can probably automate a lot of it
samcv this 'perl6 implementation' would have to be recompiled for every new roast, but
babydrop SmokeMachine: of course! That's the only way you know the fix works :)
AlexDaniel samcv: I wonder if it would be able to run any user code
samcv doubtful
unless like
you typed exactly the same thing as roast tested 01:09
AlexDaniel depends on the values you use :D
samcv because all values are hardcoded
yeah
SmokeMachine babydrop: Where? (Im sorry about so many questions... but thats my first time... :))
samcv oh in roast SmokeMachine 01:10
babydrop SmokeMachine: it's cool
01:10 kyclark left
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?
babydrop SmokeMachine: the test goes into 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
SmokeMachine: fork it, and in your rakudo repo, do git clone URL-TO-THE-FORK t/spec
And to run it do make spectest
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
samcv babydrop, that info should be in the README
tbqh
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
github.com/perl6/contribute/blob/m.../DESIGN.md 01:13
samcv it's not in there babydrop
somebody who knows more about roast than i do should add it, since i just ran the tests individually before :P
babydrop oh
01:13 TEttinger joined 01:14 unicodable6 left, unicodable6 joined
AlexDaniel unicodable6: butterfly 01:14
unicodable6 AlexDaniel, U+1F98B BUTTERFLY [So] (🦋)
AlexDaniel YEA! THAT'S MUCH BETTER!
fucking instant!
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)
samcv: which info isn't in the README btw? 01:15
About how to find files?
AlexDaniel unicodable6: gun lagar
unicodable6 AlexDaniel, U+12006 CUNEIFORM SIGN A TIMES LAGAR GUNU [Lo] (𒀆)
AlexDaniel, U+121EF CUNEIFORM SIGN LAGAR GUNU [Lo] (𒇯)
AlexDaniel, U+121F0 CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE [Lo] (𒇰)
samcv no
how to make spectest
SmokeMachine ok! closing the old file... opening the new one...
babydrop unicodable6: non-breaking space
unicodable6 babydrop, U+006E LATIN SMALL LETTER N [Ll] (n)
babydrop, U+006F LATIN SMALL LETTER O [Ll] (o)
babydrop, gist.github.com/a0f764a96c23c55200...73cce71dcf
samcv about how to RUN them
it says everything else
babydrop Right.
samcv hah
AlexDaniel u: breaking space 01:16
01:16 mawkish left
unicodable6 AlexDaniel, Found nothing! 01:16
AlexDaniel u: break space
unicodable6 AlexDaniel, U+00A0 NO-BREAK SPACE [Zs] ( )
AlexDaniel, U+202F NARROW NO-BREAK SPACE [Zs] ( )
AlexDaniel, U+FEFF ZERO WIDTH NO-BREAK SPACE [Cf] ()
AlexDaniel ok, digits, dash…
babydrop It's cause I wrote "breaking" instead of "break" :)
AlexDaniel no it's cause you wrote -
babydrop Oh :(
u: non breaking space 01:17
unicodable6 babydrop, Found nothing!
AlexDaniel I can fix that real quick
babydrop u: breaking space
unicodable6 babydrop, Found nothing!
AlexDaniel but
babydrop samcv: I see there's another way to run the tests in the repo: github.com/perl6/roast/blob/master...IBUTING.md
AlexDaniel eval: 0x1FFFF.map({.uniname}).comb.sort.squish.say 01:18
evalable6 AlexDaniel, rakudo-moar 0c75e5d: OUTPUT«(< > a e g i l)»
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
AlexDaniel eval: (0..0x1FFFF).map({.uniname}).comb.sort.squish.say
I know I should use bags, but…
evalable6 AlexDaniel, rakudo-moar 0c75e5d: OUTPUT«(signal SIGHUP) «timed out after 10 seconds, output»: »
01:18 mawkish joined
AlexDaniel or what should I use? 01:18
babydrop For what?
AlexDaniel babydrop: I want to have all characters used in uninames 01:19
samcv AlexDaniel, split on '-'
please
er. i guess
babydrop eval: (0..0x1FFFF).map({.uniname}).flat.comb.Bag.map(*.keys).say
samcv it finds anyway 01:20
hmm so probably won't change anything maybe
evalable6 babydrop, rakudo-moar 0c75e5d: OUTPUT«(signal SIGHUP) «timed out after 10 seconds, output»: »
babydrop eval: (0..0x1FFFF)».uniname.join.comb.Bag.map(*.keys).say
evalable6 babydrop, rakudo-moar 0c75e5d: OUTPUT«(signal SIGHUP) «timed out after 10 seconds, output»: »
samcv it's gonna all timeout
babydrop gives up
samcv it's gonna take time to create it
AlexDaniel, what do you mean you want to have all characters 01:21
individually?
babydrop eval: (% {(0..0x1FFFF)».uniname.comb}).keys.join.say
evalable6 babydrop, rakudo-moar 0c75e5d: OUTPUT«(exit code 1) ===SORRY!=== Error while compiling /tmp/O4h3lMrUyP␤Unexpected block in infix pos…»
babydrop, Full output: gist.github.com/d5717badcc8e4ab6eb...646f0fd1a7
AlexDaniel I want to know which ones are used :)
samcv oh
i see
AlexDaniel I can probably look it up but… it's not fun this way
SmokeMachine babydrop: sorry again, but How do I run the tests? 01:22
I tried with prove -e perl6 but I realized that was using my installed perl6 (I suppose) 01:23
01:24 aborazmeh joined, aborazmeh left, aborazmeh joined
babydrop SmokeMachine: did you build rakudo with the fix in it? 01:24
SmokeMachine not yet...
samcv eval: (0..0x1FFFF).map({.uniname}).ords.Bag.say
evalable6 samcv, rakudo-moar 0c75e5d: OUTPUT«(signal SIGHUP) «timed out after 10 seconds, output»: »
samcv the Bag part makes it slow
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
And also run `make spectest` to ensure the fix doesn't break anything
SmokeMachine babydrop: should I follow the REDME?
AlexDaniel samcv: well, that's not how it should be used, I guess :)
I was hoping that something like this will work
babydrop SmokeMachine: if it describes the process, sure.
AlexDaniel eval: my $set = SetHash.new; for 0..0x1FFFF { $set{.uniname.comb} = 1 xx * }; say $set
SmokeMachine :)
evalable6 AlexDaniel, rakudo-moar 0c75e5d: OUTPUT«(signal SIGHUP) «timed out after 10 seconds, output»: »
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»
AlexDaniel there we go
dalek c: 300f3e8 | coke++ | xt/trailing-whitespace.t:
fix indent
01:28
c: d385536 | coke++ | doc/Language/glossary.pod6:
Don't use quotes, avoid ", interaction
synopsebot6 Link: doc.perl6.org/language/glossary
c: a103ca2 | coke++ | doc/ (5 files):
avoid trailing comma before closing paren
SmokeMachine Does anyone know it I am doing something wrong?
babydrop Kinda sucks there aren't any goodlooking methods for adding stuff to hash
SmokeMachine www.irccloud.com/pastebin/eJXhcHk0/
now just worked!
babydrop *adding stuff to SetHash I mean 01:29
something like $s.add: <some items>
m: my $s = SetHash.new; $s.push: 42; dd $s
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␤␤»
babydrop huh
m: my $s = SetHash; $s.push: 42; dd $s 01:30
camelia rakudo-moar 0c75e5: OUTPUT«Array $s = $[42]␤»
babydrop 0.o
Oh right
autoviv candidate
samcv AlexDaniel, ords is going to be faster than comb
and it's all ascii
so i'd use .ords and then sort by the number of things it found then print it out as characters
dalek ateverable: 1ba7473 | (Aleks-Daniel Jakimenko-Aleksejev)++ | Unicodable.p6:
Make Unicodable 9 times faster

Not sure why would it be so much faster, but whatever. Now every query runs under one second.
01:32
AlexDaniel u: { .uniname.contains(‘(’) } 01:33
unicodable6 AlexDaniel, U+000C FORM FEED (FF) [Cc] (␌)
AlexDaniel, U+0085 NEXT LINE (NEL) [Cc] ()
AlexDaniel, U+000D CARRIAGE RETURN (CR) [Cc] (␍)
AlexDaniel, gist.github.com/d031ddf8f221742bda...dcfee26f2f
AlexDaniel well, amazing gist 01:34
01:35 travis-ci joined
travis-ci Doc build failed. Will "Coke" Coleda 'avoid trailing comma before closing paren 01:35
travis-ci.org/perl6/doc/builds/183135040 github.com/perl6/doc/compare/b7f0e...03ca242da4
01:35 travis-ci left 01:38 mawkish left, mawkish joined
babydrop that looks like a problem that wishes to be resolved before release :o 01:39
If only I knew how :(
samcv ok i can make uniprop 4.5 times faster when not specifying any terms 01:40
idk if that's useful idk
but 4.5 is a big number. the signature would change though. 01:41
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") {}
babydrop samcv: that's fine. Especially for a 4.5 speed increase :) 01:42
samcv ok
yes that number is nice
:) 01:43
SmokeMachine babydrop: should I be using the branch nom? 01:44
babydrop SmokeMachine: yes
SmokeMachine ok!
babydrop SmokeMachine: oh wait
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
SmokeMachine I just committed in the branch... Ill reset... 01:46
01:47 BenGoldberg left
samcv added that to my PR 01:48
uniprop 500%-15% faster coming soon to a rakudo near you
01:48 seatek joined
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
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"
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␤»
AlexDaniel does anybody need <> for searching stuff?
samcv also, it will give you a '0' if you try and lookup an incorrect property :\
01:50 girafe left
samcv uhm 01:50
you should do:
like u: type:
or something, you're trying to get what?
AlexDaniel well, right now if you do this 01:51
u: <Hangul Syllable>
unicodable6 AlexDaniel, U+003C LESS-THAN SIGN [Sm] (<)
AlexDaniel, U+0061 LATIN SMALL LETTER A [Ll] (a)
AlexDaniel, U+0048 LATIN CAPITAL LETTER H [Lu] (H)
AlexDaniel, gist.github.com/cb2706555377e8bf46...abef4b968b
samcv what do you want to use that for?
why does it do it per letter :(
AlexDaniel samcv: because
u: ♥∞×「
unicodable6 AlexDaniel, U+2665 BLACK HEART SUIT [So] (♥)
AlexDaniel, U+221E INFINITY [Sm] (∞)
AlexDaniel, U+00D7 MULTIPLICATION SIGN [Sm] (×)
AlexDaniel, U+FF62 HALFWIDTH LEFT CORNER BRACKET [Ps] (「)
AlexDaniel people use that to figure out what characters are there (e.g. if they can't see them) 01:52
samcv ah
ok then just make it not reply back with the characters individually if they use < > i guess
AlexDaniel now should I treat <> like searchable uniname chars or not?
01:52 Vynce joined
AlexDaniel “2 < 8” would then be a lookup by name 01:52
SmokeMachine I think I did something bad! 01:53
samcv what did you do 01:54
oh i got a pull hold on
SmokeMachine Im sorry! Im not sure, but I think I merged my pull request...
babydrop SmokeMachine: merged into what?
SmokeMachine: BTW did you run `make spectest` to ensure the fix did not break any tests? 01:55
samcv SmokeMachine, that looks fine. also
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...
samcv not sure but does it test that a negative int doesnt't smart match?
it may already do that
SmokeMachine babydrop: no, I didn't!
01:55 ufobat left
SmokeMachine Ill do it now! 01:55
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?
but rakudo is part of rakudo
/rakudo/rakudo vs perl6/*
dalek ateverable: 058810b | (Aleks-Daniel Jakimenko-Aleksejev)++ | Unicodable.p6:
Treat dashes and digits as valid chars in uninames

my %c; for 0..0x1FFFF { %c{$_} = 1 for .uniname.comb }; %c.keys.sort.join.say OUTPUT:« ()-0123456789<>ABCDEFGHIJKLMNOPQRSTUVWXYZabdeghilnoprstuvwxy»
I am not including <> and () in the list. Here is the list of stuff that has () or <> in a uniname:
  <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>
CARRIAGE RETURN (CR) FORM FEED (FF) LINE FEED (LF) NEXT LINE (NEL)
SmokeMachine babydrop: ok! thanks!! its good to read that...
AlexDaniel dalek: you did a great job! 01:57
01:57 unicodable6 left
SmokeMachine samcv: thats it! thanks! 01:58
01:58 unicodable6 joined
SmokeMachine (is good to know that I cannot break anything! :P) 01:59
AlexDaniel u: non-breaking space
unicodable6 AlexDaniel, Found nothing!
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
?
unicodable6: help
unicodable6 AlexDaniel, U+1F455 T-SHIRT [So] (👕)
AlexDaniel, Just type any unicode character or part of a character name. Alternatively, you can also provide a code snippet or a regex
samcv u: shirt-t
unicodable6 samcv, Found nothing!
samcv u: t shirt
unicodable6 samcv, U+1F3BD RUNNING SHIRT WITH SASH [So] (🎽)
samcv, U+1F455 T-SHIRT [So] (👕)
samcv u: perl 02:01
unicodable6 samcv, Found nothing!
samcv u: butterfly
unicodable6 samcv, U+1F98B BUTTERFLY [So] (🦋)
AlexDaniel amazing
samcv yeah it's great
babydrop u: U+1F98B
unicodable6 babydrop, U+0055 LATIN CAPITAL LETTER U [Lu] (U)
babydrop, U+002B PLUS SIGN [Sm] (+)
babydrop, U+0031 DIGIT ONE [Nd] (1)
babydrop, gist.github.com/f32829d82dc1382266...5dd3e68f44
babydrop .u U+1F98B
yoleaux No characters found
AlexDaniel ahhhhhhh ffffffffff
ok I'll do it real quick
samcv haha
AlexDaniel babydrop: any quick way to turn that kind of stuff into a number? 02:02
ah ok parse-base
babydrop m: 'U+1F98B'.substr(2).parse-base(16).say
camelia rakudo-moar 9a161f: OUTPUT«129419␤»
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:03
SmokeMachine: so if you ran just `make spectest`. Just abort it. I'll merge and spectest myself as penance :) 02:04
SmokeMachine aborting...
babydrop :}
Sorry
Merged. Thanks. SmokeMachine++
SmokeMachine \o/ 02:05
np!
AlexDaniel u: fullwidth 5 02:06
unicodable6 AlexDaniel, Found nothing!
AlexDaniel u: width 5
unicodable6 AlexDaniel, Found nothing!
AlexDaniel u: width five
unicodable6 AlexDaniel, U+FF15 FULLWIDTH DIGIT FIVE [Nd] (5)
babydrop u: half zero 02:07
unicodable6 babydrop, U+0F33 TIBETAN DIGIT HALF ZERO [No] (༳)
babydrop m: say ༳
camelia rakudo-moar 9a161f: OUTPUT«-0.5␤»
babydrop I love Perl 6
AlexDaniel babydrop: I'm still shocked with the performance thing. I can't believe it goes through the whole range so fast
let's try something
babydrop m: eager ^0x20000; say now - INIT now 02:08
camelia rakudo-moar 9a161f: OUTPUT«0.05192592␤»
babydrop star: eager ^0x20000; say now - INIT now
camelia star-m 2016.10: OUTPUT«0.0515904␤»
babydrop m: eager 1..1e5; say now - INIT now
camelia rakudo-moar 9a161f: OUTPUT«0.55252133␤»
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
babydrop star: eager 1..1e5; say now - INIT now
committable6 AlexDaniel, ¦«2015.12»: PENGUIN␤0.4030984␤¦«HEAD»: PENGUIN␤0.17087667
camelia star-m 2016.10: OUTPUT«6.25377204␤»
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 :)
committable6 AlexDaniel, gist.github.com/bede8ab36e8cc172f9...53a4cc878d
babydrop buggable: speed 02:10
buggable babydrop, ▅▃▄▂▁▆▃▂▅▂▄▃█▃▄▄▆▄▅▃▄▃▄▄▃▄▃▃▃▃▄▆▄▄▄▆▃▄▄▃▄▃▆▄▄▅▅▁▂▂ data for 2016-11-16–2016-12-11; variance: 6.238s–7.175s
AlexDaniel babydrop: there's something magical about 2016.07 and 2016.08… :)
SmokeMachine babydrop: thank you very much!
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
babydrop SmokeMachine: thank you!
committable6 AlexDaniel, gist.github.com/326306b5f203011be6...9e8b0850b0
AlexDaniel babydrop: and that's not noise
SmokeMachine www.irccloud.com/pastebin/wKdgC0sV/
babydrop Great! 02:13
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:17
AlexDaniel babydrop: it's almost as fast on HEAD, so not a big deal I guess 02:18
babydrop yeah
02:19 BenGoldberg joined, rburkholder left 02:23 kalkin- joined 02:24 adu joined 02:31 unicodable6 left, unicodable6 joined
AlexDaniel u: ü±65 02:31
unicodable6 AlexDaniel, U+0065 LATIN SMALL LETTER E [Ll] (e)
AlexDaniel babydrop: ↑ :P
02:34 mawkish left
dalek ateverable: 2de413a | (Aleks-Daniel Jakimenko-Aleksejev)++ | Unicodable.p6:
Hack another feature into Unicodable

Now it accepts queries like “U+65”
02:34
02:34 mawkish joined 02:35 labster joined 02:45 adu left
samcv AlexDaniel, should i make a perl 6 module to convert ANSI Terminal colors to IRC colors 02:47
works for 8 colors at least, bold and underline and even background color
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
japhb .
AlexDaniel samcv: yea. Yea!
samcv ok
hah i already have it. should polish it up and publish 02:49
yeah
japhb .tell tadzik Thank you for adding a version to Terminal-ANSIColor so quickly!
yoleaux japhb: I'll pass your message to tadzik.
samcv also you can use it to style a Str as IRCText
AlexDaniel samcv: hmm, what about this? github.com/perl6-community-modules...C/Utils.pm 02:50
02:50 jeek_ joined, jeek_ left
AlexDaniel no, doesn't help probably 02:51
samcv yeah it only strips
tadzik japhb: thank you for reporting it :)
yoleaux 02:49Z <japhb> tadzik: Thank you for adding a version to Terminal-ANSIColor so quickly!
02:52 kyclark joined
samcv AlexDaniel, github.com/samcv/keira-perl6-ircbo...tColor.pm6 02:53
this is the module, check it out and let me know if it looks ok
the ANSI to IRC Text background color works, but i haven't commited creating the background color using irc-text or irc-style
AlexDaniel I'd also need strip-ansi or something like that 02:54
for github gists
samcv ansi::terminal does that
AlexDaniel ah, okay
samcv i 'use that module' but i forget what i use it for 02:55
tbrowder magically, the 12 dec p6 advent post appeared at the stroke of 0258 utc, 12 dec! 03:00
03:07 mawkish left 03:08 mawkish joined 03:10 kyclark left, Vynce left 03:11 noganex joined 03:12 BenGoldberg left 03:14 noganex_ left, BenGoldberg joined 03:19 kyclark joined 03:22 AlexDaniel left 03:26 mawkish left, mawkish joined 03:30 aborazmeh left 03:32 Vynce joined 03:33 kyclark left 03:37 geekosaur left 03:38 BenGoldberg left, BenGoldberg joined 03:39 nowan left, geekosaur joined 03:42 nowan joined, BenGoldberg left, TEttinger left
dalek : bce94b6 | (Sterling Hanenkamp)++ | misc/perl6advent-2016/schedule:
Modifying my topic slightly

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
03:57 TEttinger joined, adu joined 04:05 BenGoldberg joined 04:11 obfusk left 04:12 adu left 04:21 khw left 04:23 bjz joined
japhb .tell AlexDaniel Terminal::ANSIColor provides colorstrip() for removing ANSI color sequences from strings. See github.com/tadzik/Terminal-ANSICol...lor.pm#L70 for implementation. 04:33
yoleaux japhb: I'll pass your message to AlexDaniel.
04:39 bjz left 04:59 Ben_Goldberg joined, Vynce left, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 05:04 cognominal joined, b_ joined, b_ left 05:06 Vynce joined 05:08 mawkish left, mawkish joined 05:10 mohae_ joined 05:13 mohae left 05:15 rburkholder joined 05:21 BenGoldberg left 05:24 BenGoldberg joined 05:29 skids left, BenGoldberg left 05:30 mawkish left, mawkish joined 05:32 BenGoldberg joined 05:46 mawkish left, mawkish joined
samcv $*OUT is immutable right? 05:47
yeah i told him that japhb samcv> ansi::terminal does that
<AlexDaniel> ah, okay
05:49 Cabanossi left 05:50 CIAvash joined, Cabanossi joined 05:58 bjz joined 06:00 rurban joined, rurban left, mawkish left 06:03 mawkish joined 06:08 mawkish left, mawkish joined 06:09 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 06:15 brillenfux joined 06:16 brillenfux left 06:18 mawkish left 06:20 brillenfux joined 06:47 wisti left 06:49 Tonik joined, RabidGravy joined 06:50 darutoko joined 07:06 brillenfux left 07:11 Tonik left 07:13 domidumont joined 07:17 domidumont left
TimToady samcv: you can shadow it within a dynamic scope with 'my $*OUT = ...' 07:18
07:18 domidumont joined
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
*be
samcv yeah
kk :) 07:20
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
but it looks like we're checking the line ending and concating it every time
TimToady well, though it looks like you can assign to $*OUT anyway... 07:21
well, it's not like you can't reopen stdout; I'm probably confusing it with $*PID or so 07:22
which you certainly can't change 07:23
samcv heh yea
TimToady, i think there could be a race here github.com/rakudo/rakudo/blob/nom/...ors.pm#L86 07:25
well if it promppts, the program changes the $*IN
it can do that right?
if print takes extra time for whatever reason.. maybe i'm just being paranoid 07:26
07:27 ufobat joined
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
multi-threaded programs that change $*IN probably deserve slow death in any case 07:28
07:28 brrt joined
samcv hah 07:28
baest_ -nick baest 07:45
07:45 baest_ is now known as baest
baest sorry :) 07:45
07:51 geekosaur left 07:53 geekosaur joined 07:56 salva joined 08:08 brrt left 08:15 abraxxa joined
ufobat good morning 08:23
08:25 zakharyas joined 08:27 brillenfux joined 08:32 _28_ria left 08:36 AlexDaniel joined 08:38 rurban joined 08:39 _28_ria joined
masak morning, #perl6 08:39
samcv morning masak 08:40
AlexDaniel 🙋
yoleaux 04:33Z <japhb> AlexDaniel: Terminal::ANSIColor provides colorstrip() for removing ANSI color sequences from strings. See github.com/tadzik/Terminal-ANSICol...lor.pm#L70 for implementation.
AlexDaniel samcv: do you ever sleep?
samcv it's like 1am here 08:41
so i'll be going to bed soon
but yes i do
AlexDaniel ah, okay
timotimo don't you know sleep is for the week? it's been weekend the last days, so no sleep needed :P
08:43 BenGoldberg left
samcv heh. 08:44
i haven't heard that one before
i like it though
08:45 pyrimidine left
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 :)
samcv hah
me too :)
08:45 wamba joined 08:46 pierre_ joined 08:47 Actualeyes left
AlexDaniel m: say Q⟮hello⟮ 08:47
camelia rakudo-moar 99f04e: OUTPUT«hello␤»
AlexDaniel it's kinda interesting that we do that ↑ before actually supporting some brackets
samcv ===SORRY!=== Error while compiling: 08:48
Couldn't find terminator ⟯ (corresponding ⟮ was at line 1)
at line 2
;P
08:49 g4 joined
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
oh i could
i guess. i will merge it if that's fine
AlexDaniel for example, PR for new brackets also removed trailing whitespace. Perhaps trailing ws change could have been committed directly 08:50
.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
samcv have i even ever submitted a PR to nqp before? i don't remember 08:52
but yeah i know i have commit access to it
AlexDaniel well, whatever is more convenient to you
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
samcv moritz, i got added to nqp group, did that add commit bit? 08:54
You automatically watched these repositories because you’ve been given push access to them. (email from github)
wasn't sure which perl6 org repos i had automatic commit to 08:55
AlexDaniel I think all of them 08:58
or almost all of them :)
08:58 pyrimidine joined
moritz samcv: yes, that gave you the nqp commit before. Before you should have had write access to most other perl6 repos 09:01
09:02 dalek left 09:03 dalek joined, ChanServ sets mode: +v dalek 09:06 brrt joined, Actualeyes joined 09:14 Vynce left, pierre_ left
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
best resource all all things nqp btw? so i can go deeper?
09:17 CIAvash left
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
timotimo have you seen the internals workshop slides?
samcv i've seen some of them :) they are good
arnsholt samcv: The best resource for NQP is... #perl6-dev, I suspect
Sadly =(
timotimo right, that's my number one recommendation for nqp stuff
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 %)
arnsholt And the NQP code itself can be pretty helpful
samcv i was finding that and as i've gotten into rakudo
arnsholt The Rakudo code can be scarier, but generally not too bad either
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
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)
arnsholt NQP is easier to follow because NQP is a simpler language, basically 09:20
So less complexity, I guess
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
(Solving halting-equivalent problems in O(1) time, as jnthn++ once put it to me)
timotimo worst is that those optimizations all sound so easy 09:22
... then you sit down in front of the code and realize the true horror of what you were hoping to do
arnsholt Yeah, it sounds so obviously straightforward to optimize code
And yet it's so hopelessly complicated
At that point, it's useful to keep Rice's theorem in mind 09:23
timotimo damn, that's harsh
(just read the TL;DR of it)
arnsholt Yeah, it's basically the generalized halting problem theorem 09:24
timotimo samcv: i expect you've also already seen the ops.markdown doc in the nqp repository? github.com/perl6/nqp/blob/master/d...s.markdown 09:25
arnsholt For any non-trivial property P, it's impossible to write a program that identifies programs with the property P
samcv yeah that is good reference :)
arnsholt Where a trivial property is one that either all or no programs have
samcv also been grepping all the source code a lot which is very useful
and reading all the places something is used etc
timotimo mhm 09:26
there's also an important difference between using nqp::blah in rakudo and using the nqp compiler itself
arnsholt timotimo: decont all the things, you mean? O:) 09:27
timotimo decont is one thing, hllize is the other thing
arnsholt (And := all the things)
timotimo nqp itself doesn't have scalar containers
and types in nqp-land don't derive from Any
and you get hllize calls generated for values crossing nqp-rakudo-borders 09:28
maybe it's not as important as i thought before i started formulating ... 09:29
samcv rakudo never returns a non object though right 09:30
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
the static code analyzer is in Moar right 09:31
09:31 AlexDaniel left 09:32 dakkar joined
timotimo no, that's the dynamic one 09:32
psch the static one reshuffles QAST, doesn't it
timotimo the static optimizer lives in src/Perl6/Optimizer.nqp
correct
samcv ah ok 09:33
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
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:46 abraxxa left 09:57 abraxxa joined 09:58 abraxxa left 10:00 abraxxa joined, dakkar left 10:07 abraxxa left 10:08 abraxxa joined 10:12 rindolf left, dakkar joined 10:16 dalek left 10:17 dalek joined, ChanServ sets mode: +v dalek, rindolf joined 10:21 espadrine joined 10:28 labster left 10:30 rburkholder left 10:31 thayne joined, jonas2 joined
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:␤ ⟯␤»
samcv m: say "a".uniprop('sc') 10:40
camelia rakudo-moar 5d6a8e: OUTPUT«Latin␤»
samcv nice
moritz m: say '𐡀 '.uniprop('sc') 10:51
camelia rakudo-moar 5d6a8e: OUTPUT«Imperial_Aramaic␤»
10:53 pmurias joined
pmurias arnsholt: re Rice theorem and optimalization, executing programs is undecidable too ;) 10:53
10:54 user9 joined, wamba left
masak .oO( cooking rice is undecidable too ) 10:56
samcv night everybody :) 10:57
moritz masak: does your wife agree? :-)
good night samcv
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␤»
Ulti ^ is that expected? 11:00
m: lines().comb.Bag.say
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 rurban left
timotimo yeah, words doesn't default to $*ARGFILES 11:00
psch m: say &lines.candidates>>.signature
camelia rakudo-moar 5d6a8e: OUTPUT«(($what = { ... }, $limit = Inf, *%named))␤»
11:03 seatek left 11:05 xxpor left 11:11 salparadise joined 11:12 xxpor joined 11:23 rindolf left 11:28 rindolf joined 11:30 MARTIMM joined 11:32 brillenfux_ joined 11:33 brillenfux__ joined
babydrop s: &words 11:34
SourceBaby babydrop, Sauce is at github.com/rakudo/rakudo/blob/e25a...rs.pm#L109
11:34 brillenfux left
Woodi hallo #perl6 :) 11:34
11:36 brillenfux_ left
babydrop \o 11:36
11:38 brillenfux_ joined
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:39
11:40 brillenfux__ left, brillenfux__ joined 11:43 brillenfux joined
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
11:44 brillenfux_ left
psch isn't that what \r without \n is for 11:44
i mean, clearly not with &say cause that prints the \n already 11:45
11:45 brillenfux__ left, bpmedley left
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:45
psch: no, it needs to clear previous character with ANSI codes and display new :) 11:46
11:46 brillenfux_ joined
psch Woodi: \r is an ANSI code 11:47
oh wait, no, it's ascii
11:47 TEttinger left
psch anyway, that's how i remembered doing something like that with perl 5 or python some long time ago :P 11:48
11:48 brillenfux left, brillenfux_ left
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 left, bjz joined 12:10 gregf_ joined, wamba joined
ufobat is anyone working on a "better" way to display perl6 profile information? the html version is horrible slow.. 12:12
12:13 kalkin- left
masak ufobat: I've been considering it, but have never sat down to look what can be done. 12:13
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
feels like it would be a nice weekend thing to explore.
pmurias there where plans to port the profiler to Angular 2 to speed it up 12:17
12:19 pyrimidine left
masak tries very hard not to react to that comment :) 12:19
12:22 lucasb joined 12:23 kalkin- joined
babydrop ufobat, next release will see SQL output format 12:23
12:23 kalkin- left
ufobat masak, okay :-) what do you think about converting the json to static html pages? like NTYProf does? 12:24
12:24 kalkin- joined
masak ufobat: that sounds like a step in the right direction, yes. 12:24
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
masak the page already looks OK, IMO. no need to change the layout. 12:25
ufobat thats true 12:26
mhm maybe i find some time :-)
12:35 rurban joined, mawkish joined
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
pmurias masak: isn't Angular 2 supposed to be faster? I have used only Angular 1 (and had performance problems with it) 12:38
12:38 Urchin left
masak pmurias: it's meant to be faster, yes. 12:38
pmurias: I'm a little disenchanted with Angular in general. 1 and 2.
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;
camelia rakudo-moar e1d92e: OUTPUT«No such method 'asy' for invocant of type 'Int'␤ in block <unit> at <tmp> line 1␤␤»
moritz m: my \x = gather { take 1; take 2}; .say for x; .say for x;
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␤␤»
moritz lucasb: ^^
lucasb thanks moritz, masak
pmurias masak: there wasn't much CS terminology in Angular 1 12:41
masak pmurias: are you kidding me? :D
pmurias: you simply aren't allowed to claim that with a project that has "transclusion" as a non-ironic concept.
lucasb oh, Seq is not Positional
masak pmurias: also: constructor, filter, directive, factory, service, dependency injection... 12:42
12:42 clkao left 12:43 clkao joined 12:44 wamba left
pmurias masak: they didn't have transclusions when I last used it ;) 12:44
masak pmurias: also, scope (in HTML!)
a solid understanding of Angular 1.x's concept of scope requires a decent understanding of JavaScript's concept of object prototypes. 12:45
cf. "isolated scope" 12:46
pmurias I like squeezing my thought patterns into the very specific way angular forces you to structure your app
masak I like structure, too.
but React (for example) can give you structure without overwhelming you with odd edge-cases and a zoo of weird CS-esque terminology 12:47
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:51
12:51 Actualeyes left
masak yes, it's basically the library/framework spectrum 12:52
you'd have to compare Angular to something like React+Redux or React+Redux+Immutable.js 12:53
jast I've done one project with Angular (1) and I've decided to not use it again 12:59
12:59 MasterDuke_ joined
jast found some libraries that I liked better, conceptually, but haven't gotten around to finishing a serious project with either... ractivejs and vuejs 12:59
13:02 canopus left
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). github.com/tadzik/p6profiler-qt/commits/master 13:02
ufobat MasterDuke, ty! :) 13:04
13:04 skids joined 13:07 Spot__ joined
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:08
13:08 skids left 13:10 canopus joined
dalek c: d174a94 | (Tom Browder)++ | doc/Language/classtut.pod6:
add clarity (hopefully--please review)
13:14
synopsebot6 Link: doc.perl6.org/language/classtut
babydrop tbrowder: that looks off to me 13:15
tbrowder: there's no difference between core object and user-defined objects in that regard. 13:16
user-made objects, I should say to avoid that particular confusion.
m: class X {}; say X.defined; say X.new.defined
camelia rakudo-moar af2ff2: OUTPUT«False␤True␤»
babydrop ^ that's the difference. And it applies the same to both core and user-made stuff
13:16 pyrimidine joined
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␤␤»
babydrop m: class Z { multi method defined (Z:D:) { False }; multi method defined (Z:U:) { True } }; say Z.defined; say Z.new.defined;
camelia rakudo-moar af2ff2: OUTPUT«True␤False␤»
tbrowder well, can you improve the original wording?
babydrop tbrowder: ^ and that's how it can be changed
tbrowder: the old version looks OK to me, TBH 13:18
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
babydrop knows too much to be able to contribute in a meaningful way 13:20
dalek c: 88240a9 | (Tom Browder)++ | doc/Language/classtut.pod6:
go back to original
synopsebot6 Link: doc.perl6.org/language/classtut
babydrop m: Failure.new.defined.say
camelia rakudo-moar af2ff2: OUTPUT«False␤»
babydrop m: Nil.new.defined.say 13:21
camelia rakudo-moar af2ff2: OUTPUT«False␤»
babydrop I think these are the only two core ones that are not defined when instantiated
s: Nil, 'defined', \()
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
travis-ci Doc build failed. Tom Browder 'add clarity (hopefully--please review)' 13:22
travis-ci.org/perl6/doc/builds/183243103 github.com/perl6/doc/compare/a103c...74a944eb22
13:22 travis-ci left
babydrop m: sub (Failure:D) { say "wee" }(Failure.new) 13:23
camelia rakudo-moar af2ff2: OUTPUT«wee␤»
babydrop neat
"You can use this method to find out if a given object is a type object or not" 13:24
I guess that's not 100% accurate...
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 ( github.com/rakudo/rakudo/blob/nom/.../Int.pm#L8 )
m: Failure.new.DEFINITE.say
camelia rakudo-moar af2ff2: OUTPUT«True␤»
babydrop That's the way to see if it's a type object or not.
m: say Failure.new ~~ Failure:D 13:28
camelia rakudo-moar af2ff2: OUTPUT«True␤»
babydrop and that too
13:31 mawkish left, mawkish joined 13:35 beatdown joined
dalek c: a516adf | (Zoffix Znet)++ | doc/Language/classtut.pod6:
Clairfy type object/instance .defined thing

Toss .defined and use better methods
13:36
synopsebot6 Link: doc.perl6.org/language/classtut
babydrop No idea where type smileys are documented... that paragraph could use a link to them 13:37
13:38 girafe joined 13:39 maxp_ joined
babydrop tbrowder: if that doesn't clarify everything, please open an Issue on docs or figure out how to clarify :) 13:39
13:41 mawkish left, mawkish joined 13:44 maxp_ left 13:47 travis-ci joined
travis-ci Doc build failed. Zoffix Znet 'Clairfy type object/instance .defined thing 13:47
travis-ci.org/perl6/doc/builds/183248892 github.com/perl6/doc/compare/88240...16adf81b14
13:47 travis-ci left, wamba joined, Actualeyes joined
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:48
13:49 mawkish left
moritz yes 13:49
13:49 prammer joined, mawkish joined
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
moritz only very few are bootstrapped early, or use special REPRs, or magic like that
13:50 kyclark joined 13:51 prammer left 13:59 wamba left 14:00 Actualeyes left 14:03 suman joined
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
suman Hi everyone, I am a R user(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
What is the work going on in Perl 6 for data analysis?
babydrop m: class Set {}; set(<a b c f g>).^name.say
camelia rakudo-moar af2ff2: OUTPUT«Set␤»
babydrop well, that's... interesting.
suman Analytics languages are getting popular these days. And will perl 6 fill that vacuum?
psch m: say &set 14:06
camelia rakudo-moar af2ff2: OUTPUT«sub set (*@a --> Set) { #`(Sub+{Callable[Set]}|76961288) ... }␤»
masak babydrop: Perl 6 allows several things with the same name to co-exist.
babydrop masak: sure, but it choked on the Int one
masak ah.
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␤»
babydrop eh, whatever :)
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
At a guess, the 42 literal desugars into something that does a lexical access for Int
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?
babydrop s: 42e0, 'Int'
SourceBaby babydrop, Sauce is at github.com/rakudo/rakudo/blob/af2f...Num.pm#L21
suman Hi everyone, I am a R user(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
babydrop :o
ISTR methods sharing a name with a type are just method and the name is just a convention...
arnsholt Of course, that could be a proposed design change that didn't hapapen
14:10 cdg joined
babydrop suman: I don't know. 14:10
masak suman: not really sure how to answer your question.
suman: I've done some graphics with Perl 6. depending how you define it, also some data analysis.
suman: but I'm not in the business of filling any vacuums. ;)
arnsholt babydrop: It never gets to the method call
m: class Int {}; say 42.0; 14:11
camelia rakudo-moar af2ff2: OUTPUT«===SORRY!===␤This type cannot box a native integer: P6opaque, Int␤»
babydrop m: class Int {}; say 42e0;
camelia rakudo-moar af2ff2: OUTPUT«===SORRY!===␤This type cannot box a native integer: P6opaque, Int␤»
babydrop Well, that's interesting.
arnsholt --ll-exception shows the crash in src/Perl6/World.nqp:2601
babydrop I think it builds it out of Ints?
m: class Int {}; say 42e306; 14:12
camelia rakudo-moar af2ff2: OUTPUT«===SORRY!===␤This type cannot box a native integer: P6opaque, Int␤»
masak m: class Int {}; say "OH HAI"
camelia rakudo-moar af2ff2: OUTPUT«===SORRY!===␤This type cannot box a native integer: P6opaque, Int␤»
masak ...everything's made of Ints
babydrop lulz
masak m: class Int {}; say Nil
camelia rakudo-moar af2ff2: OUTPUT«===SORRY!===␤This type cannot box a native integer: P6opaque, Int␤»
babydrop m: class Int {};
camelia rakudo-moar af2ff2: OUTPUT«===SORRY!===␤This type cannot box a native integer: P6opaque, Int␤»
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
psch m: class Str { }; say "foo"
camelia rakudo-moar af2ff2: OUTPUT«===SORRY!===␤This type cannot box a native string: P6opaque, Str␤»
psch guesses something about 'is box_target' and the corresponding nqp ops
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.
arnsholt babydrop: I think it might be the code that annotates with line numbers =)
psch m: class Num { }; say 0e0
camelia rakudo-moar af2ff2: OUTPUT«===SORRY!===␤This type cannot box a native number: P6opaque, Num␤»
babydrop Ah :)
psch m: class Complex { }; say i
camelia rakudo-moar af2ff2: OUTPUT«0+1i␤»
suman I think we need atleast one such "grammar of graphics" module to create elegant graphics just like ggplot2(docs.ggplot2.org/current/). 14:16
14:16 espadrine left
arnsholt babydrop: Actually not. It's binding the signature of the como unit that triggers the call to add_constant 14:16
suman masak: I think we need atleast one such "grammar of graphics" module to create elegant graphics just like ggplot2(docs.ggplot2.org/current/). 14:17
arnsholt But the line that dies goes through box_i
babydrop suman: looks neat. Make it! :) 14:18
14:18 shadowpaste0 left
masak what babydrop said. suman, let us know what you need :) 14:19
14:19 xiaomiao joined 14:20 Actualeyes joined 14:23 khw joined 14:24 shadowpaste0 joined 14:25 prammer left
babydrop repo-ed the doc travis build failure on second try :o 14:25
14:25 pyrimidine left
babydrop A panic... someone from space is stealing our collectables... 14:25
"MoarVM panic: Collectable 0x7fa386cec8f8 in fromspace accessed"
masak reminds me of a recent GC blog post by jnthn++ 14:26
jnthn Huh, that message should only show up if you've got a build with MVM_GC_DEBUG enabled...do you? 14:28
babydrop I've no idea... 14:29
jnthn You'd have to do have done it manually
babydrop update-perl6 is aliased to `rm -fr ~/.zef; rm -fr ~/.perl6; rm -fr ~/.rakudobrew/; git clone github.com/tadzik/rakudobrew ~/.rakudobrew; rakudobrew build moar; rakudobrew build zef;'
And well... we also have it show up on travis
jnthn o.O
wat
Ohhh
babydrop travis-ci.org/perl6/doc/builds/183248892#L1224 14:30
jnthn D'oh :)
babydrop ?
jnthn The message does indicate a legit bug, but yes, the (harmless, just not cheap) check should not have been compiled in by default.
jnthn forgot that one macro was not conditionally defined
Please file me an RT about it 14:31
babydrop OK
jnthn There's actually two issues, one (harmless) is that a debugging-mode sanity check has escaped into non-debug builds.
The fact it actually trips up, however, shows a legit issue
babydrop RT#130327 14:32
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130327
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."
suggestions, please 14:33
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:35
babydrop A web app written in P6? 14:37
babydrop is dubious of its stability to serve the Advent 14:38
14:39 skids joined
jnthn We've got a year :) 14:39
babydrop True :)
perlpilot babydrop: How does that bode for others who want to use P6? ;) 14:41
14:41 prammer joined
babydrop perlpilot: um... the same way? 14:41
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
But we've got a year :)
perlpilot okay :-) 14:43
dalek c: fe2a8bb | coke++ | doc/Language/classtut.pod6:
remove trailing whitespace
14:44
synopsebot6 Link: doc.perl6.org/language/classtut
14:45 prammer left 14:47 prammer joined 14:48 pierre_ joined
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 ?
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130327
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
jnthn lizmat: The debug check? Yes. 14:54
14:54 travis-ci joined
travis-ci Doc build failed. Will "Coke" Coleda 'remove trailing whitespace' 14:54
travis-ci.org/perl6/doc/builds/183267276 github.com/perl6/doc/compare/a516a...2a8bbff595
14:54 travis-ci left
jnthn lizmat: So if you're seeing a slight slowdown that's probably why :) 14:54
(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
14:55 mawkish left
jnthn (Especially because JITted code elides them) 14:55
14:55 mawkish joined
lizmat I guess we'll notice soon :-) 14:56
15:00 kurahaupo joined
suman masak: I need some module like ggplot2 for Perl 6 to create graphics for data analysis work. 15:01
15:03 mawkish left, mawkish joined
masak grrr... I wanted to Ctrl+F search modules.perl6.org/, but the in-page search box stole the focus from my Ctrl+F search! 15:04
15:05 wisti left
MasterDuke_ suman: i've used both github.com/moritz/svg-plot natively in Perl 6 and Chart::Gnuplot via Inline::Perl5 15:06
15:07 AlexDaniel joined 15:08 andrzejku joined
andrzejku huh fixed over 1000 lines code perl script in 1h ;D 15:08
not maintained since 2011 15:09
babydrop masak: clearly it's your own fault for using the website wrong! :) 15:10
15:11 prammer left, rurban left 15:12 prammer joined 15:13 rurban joined, g4 left 15:16 skids left, espadrine joined
perlpilot It would be neat if we had something like perladvent.org/2016/2016-12-01.html too 15:21
15:21 suman left, prammer left, pmurias left 15:22 prammer joined
moritz sounds doable, if there's a command that turns a text-based description into the image 15:26
ah, it uses plantuml 15:27
15:27 pierre_ left 15:30 sena_kun joined 15:31 tbrowder left, tbrowder joined
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:36
15:37 pierre_ joined
babydrop That means you're going to be generating it on each change, which is a PITA to web dev on 15:38
tbrowder i'm looking at some responsive grid systems for layout and so far i like the responsivegridsystem.com. 15:39
babydrop ehehe
Well, all of our other "responsive" websites use bootstrap. 15:40
15:40 w4and0er96 joined 15:41 FROGGS joined
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
.oO( so young... so naive... )
15:42
tbrowder young at heart, maybe :)
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.
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 ;)
tbrowder ok, just sayin'
babydrop perlpilot: well, we could also get an advent system with no one to maintain its codebase ;) 15:44
RabidGravy: how's your post coming along? You're supposed to publish in ~9 hours 15:45
Woodi here is nice looking graph app for Eve Online players, ~40 Node plugins, 50 "self writen jQuery plugins" :) but looks nice! 15:48
15:48 jdmmmmm joined
Woodi url is www.pathfinder-w.space/ :) 15:48
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)␤»
andrzejku Woodi, it is did in Perl? 15:50
Woodi no, php :)
lucasb ^^ why the snippet doesn't trigger the seq consumed thing?
moritz lucasb: because say calls .gist, and .gist uses .cache internally
lucasb but... it generates twice? 15:51
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
m: my \a = gather { .take for ^5 }; say a.cache.perl; say a.cache
camelia rakudo-moar 5556b3: OUTPUT«(0, 1, 2, 3, 4)␤(0 1 2 3 4)␤»
Woodi m: my @a = | <| / - \ | / - \ > xx *; say shift @a; # works 15:54
camelia rakudo-moar 5556b3: OUTPUT«|␤»
lucasb moritz: I understood (kind of), thanks!
Woodi but if I give it parens it don't work...
m: my @a = | (<| / - \ | / - \ > xx *); say shift @a; # works
camelia rakudo-moar 5556b3: OUTPUT«(| / - \ | / - \)␤»
Woodi '|' is not proper operator ? 15:55
perlpilot m: my \a = gather { .take for ^5 }; put a; put a;
camelia rakudo-moar 5556b3: OUTPUT«0 1 2 3 4␤0 1 2 3 4␤»
babydrop Woodi: because then you're slipping the generated seq and not the <...> bits 15:56
s: (|^3).Seq, 'Str', \() 15:57
SourceBaby babydrop, Sauce is at github.com/rakudo/rakudo/blob/aa27...eq.pm#L131
AlexDaniel SourceBaby: help 15:58
SourceBaby AlexDaniel, Use s: trigger with args to give to sourcery sub. e.g. s: Int, 'base'. See modules.perl6.org/dist/CoreHackers::Sourcery
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 ? ;)
babydrop Woodi: what damn thing?
Woodi SourceBaby :) 16:00
babydrop No
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:03
16:04 pyrimidine joined
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.
moritz AlexDaniel: but I forgot how it worked :-) maybe just try sending an Accepts: application/json header when asking for the page
AlexDaniel: github.com/moritz/ilbot/blob/maste...t.psgi#L69 yes, that seems to be the case 16:06
AlexDaniel okay
thanks
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:07
AlexDaniel ugexe: I don't think I will be ready that soon (I have a really busy week right now) 16:08
16:09 bdmatatu joined
ugexe i figure we're all the procrastinators so i'm not counting on it :) 16:10
moritz the others registered for the first half of December :-) 16:11
16:11 jdmmmmm left 16:17 Xliff_L is now known as Xliff
Xliff \o 16:17
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...
Xliff Primarily, I would like to keep a pattern in a scalar, and then have the grammar use that scalar in a regex.
psch m: my $x = '\d'; say "5" ~~ /<$x>/ 16:21
camelia rakudo-moar 5556b3: OUTPUT«「5」␤»
Xliff Ah... 16:22
psch++
What if I wanted to write an expression, there?
(... warning... rabbit hole sighted...)
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␤…»
psch gotta monkey then :P
Xliff m: my @x = <a b c d>; say "abb" ~~ /< @x.join('|') >/
camelia rakudo-moar 5556b3: OUTPUT«Nil␤»
Xliff m: my @x = <a b c d>; say "abb" ~~ m:g/< @x.join('|') >/ 16:24
camelia rakudo-moar 5556b3: OUTPUT«()␤»
Xliff m: my @x = <a b c d>; say "abb" ~~ m:g/< @x.join('||') >/
camelia rakudo-moar 5556b3: OUTPUT«()␤»
babydrop m: my @x = <a b c d>; say "abb" ~~ m:g/@x/
camelia rakudo-moar 5556b3: OUTPUT«(「a」 「b」 「b」)␤»
Xliff Oh!
:D
Xliff kicks that MONKEY off his back. 16:25
How would that go into a regex or a token?
babydrop Just like that 16:26
Xliff OK, thanks.
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␤»
babydrop shrugs
m: grammar { has @.stuff; token TOP { [@.stuff]+ $ } }.new(:stuff<a b c d>).parse('abb').say
camelia rakudo-moar 5556b3: OUTPUT«Nil␤»
jnthn Remember that the grammar class serves as your cursor type and thus has a fresh instance per token/rule 16:28
babydrop oh
Xliff m: grammar { has @.stuff; token TOP { [@.stuff]+ $ } }.new(:stuff((<a b c d>)).parse('abb').say
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>␤»
babydrop m: grammar { my @.stuff; token TOP { [@.stuff]+ $ } }.new(:stuff<a b c d>).parse('abb').say
camelia rakudo-moar 5556b3: OUTPUT«Nil␤»
babydrop heh :) Oh well
Xliff m: grammar { has @.stuff; token TOP { [@.stuff]+ $ } }.new(:stuff(<a b c d>).parse('abb').say
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>␤»
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␤»
Xliff Ah well. Enough to experiment with. babydrop++
16:29 bdmatatu left 16:30 xxpor left
Xliff jnthn: Are there docs that go into that particular issue in detail? 16:30
I have yet to deal with Cursors.
16:31 xxpor joined
jnthn Not sure. S05 perhaps talks some about it. 16:31
Xliff Ah. Thanks.
16:33 sufrostico joined
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]␤»
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
*Right 16:39
psch well, if a grammar is supposed to be dynamic having to .new it maybe isn't that bad a pattern 16:40
16:40 djbkd__ left, thayne left, djbkd joined
Xliff does self.CREATE call self.BLESS? 16:41
jnthn No, it's the lower-level one
Xliff Er. BUILD, rather
jnthn There's no way we can afford to full build cycle in every single token/rule :)
Xliff kk 16:42
16:42 sena_kun left
Xliff So... need to figure out a way to cheat... 16:43
jnthn The typical way is to use dynvars
Or rule parameters
psch oh, right, we have those too
well, it depends on the goal i suppose
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 :)
*in a
babydrop Any trick for generating 2-item permutations out of 4-item list? 16:46
m: ('--', '-+', '+-', '++').permutations(2).say
camelia rakudo-moar 555871: OUTPUT«Cannot resolve caller permutations(List: Int); none of these signatures match:␤ (List $: *%_)␤ in block <unit> at <tmp> line 1␤␤»
babydrop m: ('--', '-+', '+-', '++').combinations(2).say 16:47
camelia rakudo-moar 555871: OUTPUT«((-- -+) (-- +-) (-- ++) (-+ +-) (-+ ++) (+- ++))␤»
babydrop Like this one almost does what I want, but it's missing reverse combinations, like -+, --
or -- --, for that matter
psch so combinations of 2 items from all the permutations of each item in the original list?
oh, no 16:48
psch didn't pay enough attention apparently
Xliff dynvars and rule parameters. Will try and find docs on those.
psch well, permutations are always without putting items back 16:49
16:49 domidumont left
babydrop m: sub comb ($a, $b) { "$a $b" }; say comb '--'|'-+'|'+-'|'++', '--'|'-+'|'+-'|'++' 16:49
camelia rakudo-moar 555871: OUTPUT«any(any(-- --, -- -+, -- +-, -- ++), any(-+ --, -+ -+, -+ +-, -+ ++), any(+- --, +- -+, +- +-, +- ++), any(++ --, ++ -+, ++ +-, ++ ++))␤»
babydrop that'll do in a pinch :)
psch right, so @a X @a 16:51
m: my @a = ('--', '-+', '+-', '++'); say @a X @a
camelia rakudo-moar 555871: OUTPUT«((-- --) (-- -+) (-- +-) (-- ++) (-+ --) (-+ -+) (-+ +-) (-+ ++) (+- --) (+- -+) (+- +-) (+- ++) (++ --) (++ -+) (++ +-) (++ ++))␤»
babydrop m: say <-- -+ +- ++> X <-- -+ +- ++>
camelia rakudo-moar 555871: OUTPUT«((-- --) (-- -+) (-- +-) (-- ++) (-+ --) (-+ -+) (-+ +-) (-+ ++) (+- --) (+- -+) (+- +-) (+- ++) (++ --) (++ -+) (++ +-) (++ ++))␤»
babydrop oh cool. psch++
psch was somewhat mislead by "permutations" there
babydrop :) 16:52
16:52 abraxxa left 16:53 skids joined 16:58 pierre_ left 17:04 cibs left 17:05 cibs joined
AlexDaniel m: my @a = <- +>; say ((@a X @a) X (@a X @a)) 17:07
camelia rakudo-moar 555871: OUTPUT«(((- -) (- -)) ((- -) (- +)) ((- -) (+ -)) ((- -) (+ +)) ((- +) (- -)) ((- +) (- +)) ((- +) (+ -)) ((- +) (+ +)) ((+ -) (- -)) ((+ -) (- +)) ((+ -) (+ -)) ((+ -) (+ +)) ((+ +) (- -)) ((+ +) (- +)) ((+ +) (+ -)) ((+ +) (+ +)))␤»
babydrop AlexDaniel: I got a present for you. 17:09
AlexDaniel yay!
babydrop m: say <-0-0i>
camelia rakudo-moar 555871: OUTPUT«-0+-0i␤»
AlexDaniel ohhhh not again
17:09 pierre_ joined
babydrop ^_^ 17:10
AlexDaniel why this <…i> thing again
babydrop: you know, it's not going to end!
babydrop It will :)
17:10 rurban left
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
bisectable6: say <-0-0i>
bisectable6 babydrop, On both starting points (old=2015.12 new=5558710) the exit code is 0 and the output is identical as well
babydrop, Output on both points: -0+-0i
AlexDaniel commit: all say <-0-0i>
babydrop Oh :) Sweet, not my fault then :P
committable6 AlexDaniel, gist.github.com/11bfba9c25853e06c2...b3fe3d7cf0
babydrop But a wild guess is the codepath checks if $i < 0 and sticks "+$i" otherwise :) 17:12
17:12 djbkd left
AlexDaniel babydrop: so now what? You want me to ticket it? 17:13
babydrop Umm.. sure :)
17:17 zakharyas left 17:20 wamba joined
AlexDaniel RT #130329 17:22
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130329
AlexDaniel the title is messed up
ok 17:23
babydrop AlexDaniel++ thanks 17:24
AlexDaniel m: say 0b000l01
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
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=125684
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
AlexDaniel, Output on both points:
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
AlexDaniel, Output on both points:
AlexDaniel bisect: old=2015.07 .say for Inf..0
yeah… that's what I'm looking for
there's another ticket that seems to be resolved 17:29
17:29 bisectable6 left, djbkd joined 17:30 andreoss joined 17:31 bisectable6 joined, ChanServ sets mode: +v bisectable6
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
babydrop That one looks like the one affected by gutting of the error I gutted on the weekend 17:32
17:32 bisectable6 left
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 '03000⏏5l01' (indicated by ⏏)␤at <tmp>:1␤------> 3say :2<000l01>7⏏5;␤»
andreoss can rakudobrew not break currenly running perl6 processes during upgrade?
babydrop Oh the error is about the 0b literal
17:33 bisectable6 joined, ChanServ sets mode: +v bisectable6
andreoss i get `Unhandled exception: Bytecode validation error` 17:33
timotimo well, moar mmaps the .moarvm files
17:33 sena_kun joined
andreoss timotimo: why rakudobrew operates inside current installation directory? 17:34
timotimo don't know
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
AlexDaniel alright, that should work
andreoss oh probably it doesnt, and everything breaks after the installation
timotimo one thing that's not cool about our installation process is that we install moar, nqp, and rakudo separately
rather than moving it all over in one step
bisectable6 AlexDaniel, bisect log: gist.github.com/5b7e21d0fe16c600c9...6c3ceb32cc 17:36
AlexDaniel no dammit
bisectable6 AlexDaniel, ‘bisect run’ failure
AlexDaniel ok
babydrop m: dd Inf..0
camelia rakudo-moar 555871: OUTPUT«Inf..0␤»
babydrop m: dd 42..0
camelia rakudo-moar 555871: OUTPUT«42..0␤»
babydrop huh
AlexDaniel babydrop: why is that surprising?
babydrop m: dd (42..0)[^10]
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:36 dakkar left
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␤␤»
babydrop m: say (42..0)[0]
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␤␤»
babydrop beh
AlexDaniel oh no, this 0..-1 error…
I think there's a ticket for it somewhere
andreoss m: say (42...0)[0]
camelia rakudo-moar 555871: OUTPUT«42␤»
AlexDaniel commit: all say (Inf..0)[2000]
committable6 AlexDaniel, gist.github.com/966d0c4c43bd5e2b14...bfb6cc2f75 17:38
babydrop is getting distracted....
AlexDaniel commit: all say (-Inf..0)[2000]
commit: all say (NaN..0)[2000]
commit: all say (NaN..NaN)[2000]
committable6 AlexDaniel, gist.github.com/d0aa8ee403a2c402b9...e3c383e37f
AlexDaniel, gist.github.com/814d4551655cf13bdb...46f80b0040 17:39
AlexDaniel, gist.github.com/9c8f43a15f48c6fde3...e2ef3805c0
AlexDaniel that's all from RT #125336 17:41
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=125336
AlexDaniel m: .say for 1...NaN
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
17:42 kalkin- left
timotimo hehehe 17:42
babydrop Not a bug
well
AlexDaniel m: my @a = 1...NaN; 17:43
babydrop s: &infix:<...>, \(1, NaN)
SourceBaby babydrop, Sauce is at github.com/rakudo/rakudo/blob/5558...rs.pm#L437
camelia rakudo-moar 555871: OUTPUT«(timeout)»
AlexDaniel m: my @a = 1...Inf;
camelia ( no output )
17:43 pierre_ left, andreoss left
AlexDaniel that's from RT #125337 17:43
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=125337
17:43 pierre_ joined
babydrop s: &SEQUENCE, \(1, NaN) 17:43
SourceBaby babydrop, Sauce is at github.com/rakudo/rakudo/blob/5558...rs.pm#L105
babydrop rescinds not a bug 17:45
AlexDaniel babydrop: you changed your opinion!
babydrop Oh 17:46
AlexDaniel: no, I actually changed it to agree with Zoffix's opinion :P
So there's some consistency :)
m: dd (1..NaN)[^10]
camelia rakudo-moar 555871: OUTPUT«(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)␤»
AlexDaniel hahaha, some of my older tickets are so cool
babydrop well, that's definitely a bug-like behaviour cause Range increases but seq goes down 17:47
m: dd (NaN..NaN)[^10]
camelia rakudo-moar 555871: OUTPUT«(NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN)␤»
babydrop batman....
AlexDaniel for example, here is a cool one:
eval: say 1 if;
evalable6 AlexDaniel, rakudo-moar 5558710: OUTPUT«(exit code 1) ===SORRY!===␤Whitespace required after keyword 'if'␤at /tmp/t7464rfUgO:1␤------>…»
AlexDaniel, Full output: gist.github.com/ed56688e7ef9320cab...28681702ad
AlexDaniel it says that whitespace is required four times
ok, let's add a space
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>;»
AlexDaniel now it wants a semicolon… which is right there :)
RT #125596 if anybody is interested
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=125596
AlexDaniel std: say ‘hello’ 17:50
camelia std : OUTPUT«No such file or directory»
AlexDaniel awww
camelia std : OUTPUT«(timeout)cat: /home/camelia/std/snap/revision: No such file or directory␤#zofbot <ZoffixW> rakudo-moar: (-0-0i).Str.say␤»
AlexDaniel :-| ?
remember the times when people were comparing stuff to std? :) 17:51
bisect: [SR-] 17:53
bisectable6 AlexDaniel, Bisecting by output (old=2015.12 new=5558710) because on both starting points the exit code is 1
babydrop Nope :)
bisectable6 AlexDaniel, bisect log: gist.github.com/99b2b0acdd4c924d1d...f7128a4b28
AlexDaniel, (2016-08-16) github.com/rakudo/rakudo/commit/16...daacceffea
AlexDaniel what's S? 17:54
timotimo "sequential" metaop 17:55
i think it doesn't do anything at the moment
AlexDaniel found it: docs.perl6.org/language/operators#...a_operator 17:56
17:56 kalkin- joined
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
?
sena_kun babydrop, oh wow.
Such a silly mistake.
babydrop :)
AlexDaniel commit: all say 1 S& 2 S& 3 17:58
committable6 AlexDaniel, gist.github.com/e9fe029ecc5f8507f9...3d47a3eea4
18:06 sufrostico left 18:07 kyclark left 18:08 sufrostico joined 18:11 kyclark joined 18:12 pierre_ left
dalek osystem: 6cced02 | (Paweł Szulc)++ | META.list:
Add UNIX::Daemonize
18:14
osystem: 154e076 | Altai-man++ | META.list:
Merge pull request #272 from hipek8/master

Add UNIX::Daemonize
18:21 pierre_ joined 18:22 sufrostico left 18:23 mohae_ left, mohae joined, sufrostico joined 18:26 pierre_ left, kyclark left 18:30 kyclark joined
lucasb hey, I remember a bug about 'S', let me see... 18:31
m: say so True S& False 18:32
camelia rakudo-moar 55cf6f: OUTPUT«True␤»
18:32 geekosaur left
lucasb ^^ still here 18:32
AlexDaniel why do we even allow it 18:33
18:33 pBrahian joined
AlexDaniel I mean, why not throw NYI error or something 18:33
18:34 geekosaur joined
psch well, S is the default for non-autothreading ops 18:34
at least if i remember my synospes right
lucasb wishes this new module was spelled "Unix::*", not "UNIX::*" 18:35
babydrop lucasb: submit an Issue
lucasb: that's how I got Ftp renamed :)
lucasb ftp?
ah, nvm :) 18:36
babydrop github.com/araraloren/Net-FTP/issues/11
18:36 hankache joined
psch a S& b S& c short-circuited AND junction 18:36
from S03
soo i was wrong 18:37
lucasb hehe, nice. yes, I much prefer FTP over Ftp
psch meta S is shortcircuiting Junctions
18:37 Ven joined
psch well, that apparently means it is buggy 18:37
m: say False S& True
camelia rakudo-moar 55cf6f: OUTPUT«all()␤»
psch oh 18:38
it *also* does the single-threading thing i was thinking off
-f
pBrahian How to check if a key or index exists in an array?
babydrop :exists 18:39
psch m: my @a = 1,2; say @a[2]:exists; say @a[1]:exists
camelia rakudo-moar 55cf6f: OUTPUT«False␤True␤»
babydrop same for hashes
and setties and baggies
18:39 japhb left
psch m: my @a = Int, Str; say @a[1]:exists 18:39
camelia rakudo-moar 55cf6f: OUTPUT«True␤»
babydrop m: my @a = ^10; @a[5]:delete; say @a[5]:exists 18:40
camelia rakudo-moar 55cf6f: OUTPUT«False␤»
18:40 labster joined, labster left, labster joined 18:41 japhb joined 18:42 bitmap joined 18:45 pBrahian left, pbrahian joined
AlexDaniel m: my @a = <a b c>; say @a[0..*] 18:46
camelia rakudo-moar 55cf6f: OUTPUT«(a b c)␤»
AlexDaniel m: my @a = <a b c>; say @a[-1..*]
camelia rakudo-moar 55cf6f: OUTPUT«()␤»
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
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»
AlexDaniel lucasb: no
sena_kun Any list of nqp types?
AlexDaniel huh? 18:48
ah
lucasb oh
AlexDaniel lucasb: use *-1..* for that
18:49 thatbot joined
AlexDaniel thatbot: help 18:49
lucasb AlexDaniel: ok, thanks
sena_kun Ah, found it.
thatbot AlexDaniel: command not found
AlexDaniel sena_kun: where?
thatbot: … are you sure that you're a bot?
thatbot AlexDaniel: command not found
sena_kun AlexDaniel, github.com/perl6/nqp/blob/master/d...qp-opcodes - starting from "In opcode signatures below,".
psch that's not a comprehensive list of nqp types 18:50
that's only the types used in the explanations of ops
lucasb "which may not correspond directly to NQP types"
sena_kun Yes, it seems so.
But it is already something!
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..*]
committable6 AlexDaniel, gist.github.com/5acc3b054da10c5a19...276406a156
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?
sena_kun psch, rt.perl.org/Public/Bug/Display.html?id=130211
psch sena_kun: where do you want to fix that?
sena_kun: alternatively, why do you need a type? most nqp code doesn't annotate variables or attributes with types 18:53
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.
AlexDaniel OK, so this warns
m: my @a = <a b c>; say @a[*-10..2]
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␤␤»
AlexDaniel and this doesn't
m: my @a = <a b c>; say @a[*-10..*]
camelia rakudo-moar 55cf6f: OUTPUT«()␤»
18:54 lukaramu joined, darutoko left
pbrahian if @array[3]:!exists{ say "HELLO EXIST"; } Is that valid? 18:55
thatbot pbrahian: need space after exists
well and your logic too
pbrahian: right now it reads if index 3 does not exist
yet your inside say says 'exists';
psch sena_kun: i don't see why you need a type there
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␤»
AlexDaniel m: my @array = <a b c d e>; if @array[8]:exists { say "HELLO EXIST"; }
camelia ( no output )
thatbot m: my @array = <a b c d e>; if @array[8]:!exists { say "HELLO EXIST"; }
camelia rakudo-moar 55cf6f: OUTPUT«HELLO EXIST␤»
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
sena_kun: in line 113 or thereabouts, i'm not quite sure where you'd build the hash 18:57
thatbot doh....
I meant to say... command not found
sena_kun psch, yes, I thought about solution with a hash. 18:58
18:58 Ven left, mr-foobar left, thatbot is now known as phatbot 19:03 wamba left 19:06 japhb left
AlexDaniel m: my @a = <a b c d e>; say @a[*+10..*] 19:07
camelia rakudo-moar 55cf6f: OUTPUT«()␤»
AlexDaniel m: my @a = <a b c d e>; say @a[*+10..*]:exists
pbrahian How to find out if there is an item inside a hash?
phatbot hehe
pbrahian: same as with arrays
camelia rakudo-moar 55cf6f: OUTPUT«(timeout)»
AlexDaniel pbrahian: :exists
psch AlexDaniel: well, *..* :exists...
phatbot psch: why is that problematic?
19:08 sufrostico left
psch phatbot: because * as RHS to .. means Inf 19:08
phatbot oh
19:08 japhb joined
AlexDaniel I don't think I understand 19:08
psch m: say (1..*)
camelia rakudo-moar 55cf6f: OUTPUT«1..Inf␤»
AlexDaniel m: my @a = <a b c d e>; say @a[*-5..*]
camelia rakudo-moar 55cf6f: OUTPUT«(a b c d e)␤»
AlexDaniel this works
m: my @a = <a b c d e>; say @a[*-5..*]:exists
this hangs
so what if it means Inf ?
psch yes, but :exists checks for every element 19:09
phatbot But why?
camelia rakudo-moar 55cf6f: OUTPUT«(timeout)»
phatbot m: my @a = <a b c d e>; say @a[*-5..100]
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)…»
psch m: my @a = ^10; @a[0..2]:delete
camelia ( no output )
psch m: my @a = ^10; @a[0..2]:delete; @a[0..10]:exists
camelia ( no output )
psch m: my @a = ^10; @a[0..2]:delete; @a[0..10]:exists.say
camelia rakudo-moar 55cf6f: OUTPUT«(False False False True True True True True True True False)␤»
psch "but why" what?
phatbot m: say (*-5..*)(10)
camelia rakudo-moar 55cf6f: OUTPUT«5..Inf␤»
19:09 sufrostico joined
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)␤»
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]
camelia rakudo-moar 55cf6f: OUTPUT«(a b c d e)␤»
psch so, yeah, lets reify infinite non-existing elements
phatbot ok, nevermind
AlexDaniel commit: 2015.07,2015.12 @a = <a b c d e>; say @a[*-5..*]:exists
committable6 AlexDaniel, gist.github.com/dd1937340dd2da06bd...a4b5766ebf
AlexDaniel commit: 2015.07,2015.12 my @a = <a b c d e>; say @a[*-5..*]:exists
okay
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 espadrine left
phatbot looks ok to me 19:11
19:12 labster left
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)␤»
psch m: (1..*).elems
camelia ( no output )
psch m: (1..*).elems.say
camelia rakudo-moar 55cf6f: OUTPUT«Inf␤»
psch i mean
phatbot hehehe
m: eager 1..*
camelia rakudo-moar 55cf6f: OUTPUT«(timeout)»
pbrahian %S 19:13
AlexDaniel [2..*] works, [2..*]:exists works, [*-2..*] works, [*-2..*]:exists suddenly does not
phatbot m: [][2..*]:exists
camelia ( no output )
psch m: my @a = 1,2; say @a[1..*]:exists
camelia rakudo-moar 55cf6f: OUTPUT«(True)␤»
psch ohh
AlexDaniel++
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?
psch i didn't notice that
19:14 sufrostico left
psch oh right 19:14
m: my @a = 1,2; say @a[*-2..*]:exists
phatbot m: my @a = 1,2; say @a[1..Inf]:exists
psch ah, so we only prime the first Whatever as @.elems
camelia rakudo-moar 55cf6f: OUTPUT«(timeout)»
rakudo-moar 55cf6f: OUTPUT«(True)␤»
phatbot m: my @a = 1,2; say @a[1..Inf]:exists
camelia rakudo-moar 55cf6f: OUTPUT«(True)␤»
psch still weird
phatbot m: my @a = 1,2; say @a[10..Inf]:exists
camelia rakudo-moar 55cf6f: OUTPUT«()␤»
phatbot :S 19:15
pbrahian output?
19:15 sufrostico joined
AlexDaniel pbrahian: sorry? 19:15
psch m: say "yes"
camelia rakudo-moar 55cf6f: OUTPUT«yes␤»
phatbot So, why didn't it reify infinite number of elements that time?
psch probably to hide from a shady past or something *handwave*
phatbot :D
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
psch probably worth investigating
committable6 AlexDaniel, gist.github.com/0c190029d905dc04a7...7e1224f857
psch i'm not sure what exactly we do there, and i'm not quite in a code-diving mood right now, sorry :S
jnthn Only half-following, but there's certainly a distinction between something marked lazy and something not marked lazy in array indexing 19:17
(Distinguished by return value of .is-lazy) 19:18
19:21 pyrimidine left 19:22 pierre_ joined, pyrimidine joined 19:26 pierre_ left 19:27 pyrimidine left 19:28 thalunil joined 19:30 labster joined 19:33 domidumont joined 19:34 domidumont left, domidumont joined
pbrahian What is this error? Missing block ------> <BOL>⏏<EOL> 19:34
19:36 cdg left
sena_kun pbrahian, any code example please? 19:36
phatbot m: say ""
camelia rakudo-moar a3735a: OUTPUT«␤»
phatbot m: for { ␤␤␤
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
AlexDaniel what block is missing? 19:37
I don't get it
perlpilot Apparently that error is LTA
FROGGS weird
phatbot The block for `for`
phatbot doesn't notice the weirdness
AlexDaniel phatbot: it's right there
phatbot No, it's not
AlexDaniel for { ← here is the block
FROGGS that's not a block
perlpilot AlexDaniel: no, that's just an opening curly brace.
sena_kun The block is not missing, but it is unfinished, yes.
AlexDaniel now, we didn't close it, so there's no block, alright
phatbot No, that's an opening curly
:) 19:38
AlexDaniel but no. No.
how does it parse { then?
m: for { ␤␤␤ {}
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␤»
phatbot AlexDaniel: but what about for {42;} { .say } ?
FROGGS still, the block comes after the expression that follows the 'for' keyword
phatbot AlexDaniel: you can't know taht { is for the block :)
hehehe
FROGGS m: for { foo => 42 } { .value.say } 19:39
camelia rakudo-moar a3735a: OUTPUT«42␤»
AlexDaniel nope, I still don't get it. Alright, nevermind
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
FROGGS m: {
camelia rakudo-moar a3735a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing block␤at <tmp>:1␤------> 3{7⏏5<EOL>␤»
FROGGS hmmm
19:41 MasterDuke_ left, japhb left 19:42 lucasb left 19:43 japhb joined
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: rt.perl.org/rt3//Public/Bug/Displa...?id=130331
phatbot :} 19:45
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)␤»
AlexDaniel m: my @a = <a b c d e>; say @a[-1..*]:exists
camelia rakudo-moar a3735a: OUTPUT«()␤»
AlexDaniel m: my @a = <a b c d e>; say @a[-1..*+0]:exists
camelia rakudo-moar a3735a: OUTPUT«(False True True True True True False)␤»
phatbot :o 19:47
samcv morning perl 6 19:49
perlpilot good afternoon samcv
phatbot evining
AlexDaniel phatbot: something is not right, right? 19:51
phatbot: that thing is, pre-glr this was an error
commit: pre-glr my @a = <a b c d e>; say @a[-1..*]:exists
committable6 AlexDaniel, ¦«pre-glr»: False True True True True True
AlexDaniel … or maybe not
commit: pre-glr my @a = <a b c d e>; say @a[-1..*+0]:exists
committable6 AlexDaniel, ¦«pre-glr»: False True True True True True False
AlexDaniel … yea, I guess not
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
committable6 AlexDaniel, gist.github.com/9106caa69c5386d698...7b7202bc65 19:52
19:54 rurban left 19:55 pyrimidine left 19:56 pyrimidine joined 19:59 rurban joined 20:01 pyrimidine left, rurban left 20:03 pmurias joined 20:06 MARTIMM left
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:07
20:08 japhb left
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…»
phatbot nqp: my %hash_name := {}; my $key := 'foo'; nqp::atkey(%hash_name, $key)
camelia ( no output )
phatbot sena_kun: need nqp:: in front of it?
sena_kun phatbot, aaaaaaaaah. Thanks. The error is rather obscure. 20:09
20:09 japhb joined 20:10 sufrostico left 20:12 Tonik joined, sufrostico joined 20:14 ufobat left 20:15 pyrimidine joined
dalek c: 112ad2e | samcv++ | doc/Type/Cool.pod6:
Add documentation on `uniprops` and update `uniprop`

to say it returns a Bool for Boolean Unicode properties
20:15
synopsebot6 Link: doc.perl6.org/type/Cool
20:16 pierre_ joined 20:17 mawkish left, mawkish joined 20:19 pyrimidine left 20:21 pierre_ left
Xliff Is there a way to dynamically add tokens to a grammar? 20:23
20:24 domidumont left
moritz Xliff: same as methods: by mixing in an anonymous role 20:24
or presumably with .^add_method and .^compose 20:25
Xliff moritz++: Thanks.
phatbot m: .parse('abc').say with grammar {} but role { token TOP { .+ } } 20:27
camelia ( no output )
phatbot m: .parse('abc').say given grammar {} but role { token TOP { .+ } }
camelia rakudo-moar fa9887: OUTPUT«「abc」␤»
phatbot neat
20:28 sena_kun left 20:31 setty1 left 20:32 andrzejku_ joined 20:34 travis-ci joined
travis-ci Doc build failed. Samantha McVey 'Add documentation on `uniprops` and update `uniprop` 20:34
travis-ci.org/perl6/doc/builds/183366884 github.com/perl6/doc/compare/fe2a8...2ad2ed199f
20:34 travis-ci left
samcv nice 20:37
phatbot m: &uniprops.file.say
camelia rakudo-moar fa9887: OUTPUT«SETTING::src/core/Cool.pm␤»
phatbot m: &uniprop.file.say 20:38
camelia rakudo-moar fa9887: OUTPUT«SETTING::src/core/Cool.pm␤»
samcv they're all in cool though :(
Xliff OK, so what am I doing wrong, here?
m: grammar G { regex TOP { <ex> }; regex ex { e || x }; }; say G.^methods
camelia rakudo-moar fa9887: OUTPUT«No such method 'gist' for invocant of type 'NQPRoutine'␤ in block <unit> at <tmp> line 1␤␤»
skids That's an NYI on some low level stuff.
Xliff Ahhh.... 20:39
phatbot m: grammar G { regex TOP { <ex> }; regex ex { e || x }; }; say G.^methods».name
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…»
skids m: grammar G { regex TOP { <ex> }; regex ex { e || x }; }; say G.^methods>>.name
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…»
skids jin
20:39 mawkish left
skids x 20:39
20:39 pyrimidine joined, mawkish joined
dalek c: 5bffa57 | samcv++ | doc/Type/Cool.pod6:
Try and work around problem in docs to get it building again

Chang routine's to methods.
20:40
synopsebot6 Link: doc.perl6.org/type/Cool
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:41
m: dd [.file, .line] given Cool.^lookup('uniprops') 20:42
camelia rakudo-moar fa9887: OUTPUT«["SETTING::src/core/Cool.pm", 107]␤»
phatbot m: dd [.file, .line] given &uniprops
camelia rakudo-moar fa9887: OUTPUT«["SETTING::src/core/Cool.pm", 492]␤»
phatbot based on that sub's name "my Str @subkinds = first-code-block($chunk)\" 20:43
20:43 thayne joined
phatbot is just making this up as it goes along really... 20:44
20:46 rurban joined 20:47 thalunil left
samcv you mean the code that does the docs? 20:49
i mean i'm looking at both the Cool.pod6 and the Cool.pm atm
20:51 sufrostico left
dalek c: a4292f5 | samcv++ | / (2 files):
Document unimatch. Also add uniprops to the words file
20:51
20:51 _28_ria left
AlexDaniel phatbot: “Tests added: rt.perl.org/rt3//Public/Bug/Displa...id=130260” 20:51
:D
phatbot AlexDaniel: github.com/perl6/roast/commit/f30510e79c
20:52 jonas2 left
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 20:53 sufrostico joined
timotimo .u ⛀⛂ 20:54
yoleaux U+26C0 WHITE DRAUGHTS MAN [So] (⛀)
U+26C2 BLACK DRAUGHTS MAN [So] (⛂)
timotimo .u ⛃
yoleaux U+26C3 BLACK DRAUGHTS KING [So] (⛃)
timotimo .u draughts
yoleaux U+26C0 WHITE DRAUGHTS MAN [So] (⛀)
U+26C1 WHITE DRAUGHTS KING [So] (⛁)
U+26C2 BLACK DRAUGHTS MAN [So] (⛂)
timotimo ...
unicodable6: help
unicodable6 timotimo, Just type any unicode character or part of a character name. Alternatively, you can also provide a code snippet or a regex
timotimo unicodable6: draughts
unicodable6 timotimo, U+26C0 WHITE DRAUGHTS MAN [So] (⛀)
timotimo, U+26C1 WHITE DRAUGHTS KING [So] (⛁)
timotimo, U+26C2 BLACK DRAUGHTS MAN [So] (⛂)
timotimo, U+26C3 BLACK DRAUGHTS KING [So] (⛃)
timotimo is that all there is? huh. 20:55
samcv ugh unimatch also suffers from the same problem as uniprop used to before i fixed it
timotimo about IntStr and such?
samcv m: say unimatch 'a', 'Latin', 'sc'
camelia rakudo-moar fa9887: OUTPUT«False␤»
samcv m: say unimatch 'a', 'Latin', 'Script'
camelia rakudo-moar fa9887: OUTPUT«True␤»
20:56 diegok joined
timotimo oh, about how some names are ambiguous? 20:56
samcv well they're not ambiguous they're the canonical unicode defined names 20:57
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
because reasons
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
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
21:00 wamba joined, travis-ci joined
travis-ci Doc build passed. Samantha McVey 'Try and work around problem in docs to get it building again 21:00
travis-ci.org/perl6/doc/builds/183373574 github.com/perl6/doc/compare/112ad...ffa577d24b
21:00 travis-ci left
samcv yay 21:01
also with this github.com/perl6/doc/issues/900 21:02
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?
i mean they are for nqp but seems redundant 21:03
21:05 cdg joined 21:08 TEttinger joined 21:09 mawkish_ joined, prammer left, mawkish left 21:11 prammer joined
phatbot s: &uniprop-str 21:12
SourceBaby phatbot, Sauce is at github.com/rakudo/rakudo/blob/fa98...ol.pm#L485
samcv i think i'll just make an extra multi for when somebody supplies a unicode property to check against
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
21:13 travis-ci joined
travis-ci Doc build passed. Samantha McVey 'Document unimatch. Also add uniprops to the words file' 21:13
travis-ci.org/perl6/doc/builds/183376483 github.com/perl6/doc/compare/5bffa...292f524145
21:13 travis-ci left
samcv m: say uniprop('a', 'sc') eq 'Latin' 21:14
camelia rakudo-moar fa9887: OUTPUT«True␤»
samcv pretty simple
and the case where you don't supply a property to check against will still work the same
Xliff gist.github.com/Xliff/840123313a63...81394f3e70 21:15
Another odd error message from rakudo. 21:16
samcv substring length cannot be negative... hmm 21:18
does it tell you a line?
Xliff Nope
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
Like 6 stalled projects.
And I can't golf most of them down to the gristle.
A couple of 'em are dying of old age in RT 21:20
AlexDaniel timotimo: what kind of extra draughts do you want?
samcv Xliff, just start commenting out lines until the error goes away :P
Xliff samcv: It's not the where... it's the why. 21:21
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.
Yes.
$g.^add_method("unit:sym<$unit>", token { <sym> });
samcv #$g.^add_method("unit:sym<$unit>", token { <sym> }); h
yeh
Xliff I can do "$g.^add_method("unit:sym<ft>", token { <sym> });" and get the same thing. 21:23
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
Xliff Hmmm.... I just thought of something. 21:24
21:25 pyrimidine left
moritz Xliff: did you call compose too? 21:26
21:26 pyrimidine joined
timotimo AlexDaniel: i don't even know what man and king draughts are :) 21:26
21:27 rurban left
Xliff moritz: Yes. See gist: 21:27
gist.github.com/Xliff/840123313a63...81394f3e70
Of course, there were bugs in the snippet. Fixing them gave the same results, though.
Gist updated. 21:28
21:28 mohae left
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
u: Ll
unicodable6 AlexDaniel, U+0061 LATIN SMALL LETTER A [Ll] (a)
AlexDaniel, U+0062 LATIN SMALL LETTER B [Ll] (b)
AlexDaniel, U+0063 LATIN SMALL LETTER C [Ll] (c)
timotimo maybe it's from Draughts and Crosses? or Draughts and Ladders?
unicodable6 AlexDaniel, gist.github.com/e000c1d637b6835d2b...8abb97398d
21:30 pyrimidine left
moritz Xliff: oh, I have an idea 21:30
AlexDaniel … did it just take 7 seconds to upload a gist?
21:31 mohae joined
moritz Xliff: maybe the problem is that the token itself doesn't know its own name 21:31
21:31 pierre_ joined
AlexDaniel u: heavy shaft 21:32
unicodable6 AlexDaniel, U+1F82C LEFTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT [So] (🠬)
AlexDaniel, U+1F82E RIGHTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT [So] (🠮)
AlexDaniel, U+1F82D UPWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT [So] (🠭)
AlexDaniel, gist.github.com/26f4b9845bfcf0a049...dfdab0e076
21:32 prammer left
moritz m: token { <sym> } 21:33
camelia rakudo-moar fa9887: OUTPUT«===SORRY!===␤Substring length (-5) cannot be negative␤»
moritz Xliff: golf'd
21:34 prammer joined
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>/
camelia rakudo-moar fa9887: OUTPUT«===SORRY!===␤Substring length (-5) cannot be negative␤»
moritz Xliff: instead, try to use $unit in the regex 21:35
21:35 pierre_ left 21:37 prammer left, pyrimidine joined 21:38 setty1 joined 21:41 lukiramu joined, Ven joined 21:42 andrzejku_ left 21:43 Tonik left 21:44 lukaramu left
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.
But I understand why everyone cringes in fear. 21:46
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.
[Coke] Xliff: we can't fix the tickets we don't have. 21:47
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?)
Xliff [Coke]: That's what I thought.
[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 :)
Xliff Yes.
phatbot Are all of them as scary as XML one?
[Coke] Xliff: sure, it's better, but not ticket is worse, no?
Xliff Well that and I think that there is coder error in those. I'm not sure that rakudo is at fault... yet
[Coke] *no
Xliff phatbot: Most, yes. Hence my trepidation.
phatbot :o 21:49
SmokeMachine how are you highlitining your code on wordpress' advent calendar?
Xliff Yeah. :P
SmokeMachine: "```perl6" <code> "```"
phatbot SmokeMachine I have a fancy acript
Xliff Oh! I thought he was talking about markdown. LOL
SmokeMachine that accepts markdown?! Good to know!
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
SmokeMachine Xliff: ok, thanks!
phatbot: hum...
phatbot you need it?
Xliff Here is the other one that is still in RT: rt.perl.org/Ticket/Display.html?id=129109 21:51
SmokeMachine phatbot: yes, please!
:)
21:52 hankache left
SmokeMachine I was trying to use the vim's :source $VIMRUNTIME/syntax/html.vim... but I don't know why its not working... 21:53
moritz Xliff: fwiw I've just noticed that there's an add_multi_method as well 21:55
instead of just add_method
SmokeMachine I got it!!! its 2html.vim!!!
Xliff moritz: I was about to ask, how to add a method into a grammar so it acts like a rule.
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?
jinx
moritz Xliff: the real question is: how do you add a multi to an existing token?
Xliff Oooo
moritz and does that need to be different for grammars
Xliff Uncharted territory, here?
moritz for me at least
Xliff :) 21:57
moritz codegen was never my forte
Xliff Are token:rule<sym> rules multis?
I would guess so.
moritz would guess so too
Xliff Just never looked at them that way because it never occured to me to do so. 21:58
Well, I can try to see if it gives different results.
moritz Xliff: success! 21:59
Xliff moritz: ? 22:00
moritz Xliff: perlpunks.de/paste/show/584f1dec.5578.5c
Xliff: one problem was that you did $.parser.HOW.^add_method
it's just $.parser.^add_method or add_multi_method
Xliff Ah.
moritz++! 22:01
moritz so you added the method to the metaclass, not to the class :-)
Xliff LOL
22:01 skids left
moritz the set_name call isn't necessary 22:01
(and you don't have provisions in the grammar for skipping <mag>, so your first example could never match)
Xliff \o/ 22:02
Thanks so much!
moritz you're welcome
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:03
Xliff No kidding. 22:04
Now here's another problem. If I make <mag> optional, it will chew into the unit.
Since "f" is a valid <mag>, "ft/s" -> <mag> = "f" and the rest fails since there is no "t"
phatbot SmokeMachine: it's this gist.github.com/zoffixznet/356a944...ecb233a308
Xliff How can I force <unit> to match before <mag> 22:05
Is this look ahead sort of territory?
phatbot SmokeMachine: we actually have modules.perl6.org/dist/Pastebin::Gist in ecosystem, so it'd be trivial to make it roundtrip a Markdown file to html
samcv my REPL is broken now :(
fails the REPL tests in spectest
moritz Xliff: try enabling backtracking in expr?
22:05 flaviusb joined
SmokeMachine phatbot: thanks! 22:05
phatbot samcv: try running them alone, that maybe the timeout failing
samcv well it doesn't work at all
phatbot Like just make t/spec/whatever/file.t
oh :( 22:06
samcv with Readline package
phatbot yikes
Xliff moritz: token expr -> regex expr. Did the trick.
Nice!
22:06 gfldex joined
[Coke] wonders if #130330 is a DIHWIDT. 22:10
22:11 timotimo joined
AlexDaniel [Coke]: if you make it consistent, yes 22:11
better tell me what the hell is this:
m: my @a = <a b c d e>; say @a[-1..*]:exists
camelia rakudo-moar fa9887: OUTPUT«()␤»
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)␤»
[Coke] ah, I literally did not read the example that said "to understand the issue". :)
jnthn m: say (-1..*).WHAT
camelia rakudo-moar fa9887: OUTPUT«(Range)␤»
jnthn m: say (-1..*).is-lazy
camelia rakudo-moar fa9887: OUTPUT«True␤»
jnthn m: say (-1..*+0).WHAT 22:13
camelia rakudo-moar fa9887: OUTPUT«(WhateverCode)␤»
jnthn m: say (-1..*+0)(5).WHAT
camelia rakudo-moar fa9887: OUTPUT«(Range)␤»
phatbot Well, I saw some more weird ones.
jnthn m: say (-1..*+0)(5).is-lazy
camelia rakudo-moar fa9887: OUTPUT«False␤»
AlexDaniel jnthn: okay… okay! Now what about this
jnthn There you go.
AlexDaniel m: my @a = <a b c d e>; say @a[0..*]:exists
camelia rakudo-moar fa9887: OUTPUT«(True True True True True)␤»
AlexDaniel m: my @a = <a b c d e>; say @a[0..*+0]:exists
camelia rakudo-moar fa9887: OUTPUT«(True True True True True False)␤»
jnthn m: say (0..*).WHAT
camelia rakudo-moar fa9887: OUTPUT«(Range)␤»
jnthn m: say (0..*).is-lazy
camelia rakudo-moar fa9887: OUTPUT«True␤»
jnthn m: say (0..*+0).WHAT 22:14
camelia rakudo-moar fa9887: OUTPUT«(WhateverCode)␤»
phatbot Aha
jnthn m: say (0..*+0)(5).WHAT
camelia rakudo-moar fa9887: OUTPUT«(Range)␤»
jnthn m: say (0..*+0)(5).is-lazy
camelia rakudo-moar fa9887: OUTPUT«False␤»
jnthn That's why.
phatbot jnthn++
jnthn The array subscripter decides whether to auto-viv for not based on .is-lazy
0..* is just a range, not a whatevercode
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
AlexDaniel hmmm? 22:16
: my @a = <a b c d e>; say @a[-1..*+0]:exists
m: my @a = <a b c d e>; say @a[-1..*+0]:exists
camelia rakudo-moar fa9887: OUTPUT«(False True True True True True False)␤»
AlexDaniel m: my @a = <a b c d e>; say @a[0..*+0]:exists
camelia rakudo-moar fa9887: OUTPUT«(True True True True True False)␤»
AlexDaniel oh, it isn't?
right
m: my @a = <a b c d e>; say @a[-1..*]:exists
camelia rakudo-moar fa9887: OUTPUT«()␤»
AlexDaniel m: my @a = <a b c d e>; say @a[0..*]:exists
camelia rakudo-moar fa9887: OUTPUT«(True True True True True)␤»
phatbot That looks like it bypasses the thing that cries about negative range? 22:17
negative index I mean
m: my @a = <a b c d e>; say @a[-42..*]
camelia rakudo-moar fa9887: OUTPUT«()␤»
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␤␤»
AlexDaniel commit: pre-glr my @a = <a b c d e>; say @a[-1..*+0]:exists
committable6 AlexDaniel, ¦«pre-glr»: False True True True True True False
AlexDaniel commit: pre-glr my @a = <a b c d e>; say @a[-1..*]:exists
committable6 AlexDaniel, ¦«pre-glr»: False True True True True True
AlexDaniel ah, hm…
jnthn phatbot: Yeah, seems it somehow is...which is a bit naughty
The "use lazy to decide whether to auto-viv or not" distinction came during the GLR
phatbot m: my @a = <a b c d e>; say @a[lazy -42..5] 22:19
camelia rakudo-moar fa9887: OUTPUT«()␤»
jnthn So things like
AlexDaniel commit: 2015.06 my @a = <a b c d e>; say @a[-1..*+0]:exists
committable6 AlexDaniel, ¦«2015.06»: False True True True True True False
jnthn m: my @a; @a[3..5] = 1 xx *; say @a 22:20
camelia rakudo-moar fa9887: OUTPUT«[(Any) (Any) (Any) 1 1 1]␤»
jnthn Will auto-viv
But at the same time
AlexDaniel I remember kind of restriction for negative numbers disappeared after glr, now what was it…
jnthn YOu can say @a[2..*]
And it'll truncate
phatbot AlexDaniel: $x x $y ?
AlexDaniel no, associated with subscripts
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
camelia rakudo-moar fa9887: OUTPUT«[]␤»
jnthn iirc it stops at the first position where .EXISTS-POS returns False
22:22 espadrine joined
AlexDaniel let's see 22:22
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
AlexDaniel committable6: pre-glr my @a = <a b c d e>; say @a[-1..*]:exists
committable6 AlexDaniel, ¦«pre-glr»: False True True True True True
AlexDaniel committable6: HEAD my @a = <a b c d e>; say @a[-1..*]:exists
committable6 AlexDaniel, ¦«HEAD»: ()
AlexDaniel ah, not this one…
ok, this one:
committable6: pre-glr my @a = <a b c>; say @a[*-5..*]
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»
AlexDaniel committable6: HEAD my @a = <a b c>; say @a[*-5..*] 22:24
committable6 AlexDaniel, ¦«HEAD»: ()
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2016/12/12/...rofilesql/
22:30 bjz left
pmurias phatbot: what's your hackernews article? 22:34
timotimo probably the "fell through the QAST" advent post 22:35
22:36 vera left
lizmat news.ycombinator.com/item?id=13125282 22:36
22:36 pbrahian left 22:38 mawkish_ left 22:39 mawkish_ joined
phatbot timotimo: no the set one 22:40
With the first guy ranting about the oh-so-difficult-to-learn set ops 22:41
phatbot closed the page after that
Kinda don't care any more :) 22:42
RabidGravy I've just posted tomorrows Advent article, ignore it for an hour and a quarter
phatbot RabidGravy sweet 22:43
22:45 mawkish_ left, mawkish_ joined 22:46 rindolf left, kurahaupo left
timotimo but set operations are really not immediately obvious 22:48
phatbot :/ 22:49
AlexDaniel phatbot: by the way 22:51
.put for @wanted.combinations.grep: { $materials ≽ [⊎] @^stuff-we-want }
↑ perhaps this is a little bit better
22:51 FROGGS left
timotimo RabidGravy: ignore? why not check for typos? ;) 22:52
22:52 thayne left
RabidGravy Of course there are typos 22:53
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...
star: dd (bag() but "x").combinations.grep: { [⊎] @^stuff-we-want }
AlexDaniel in fact @_ would probably look more natural to my eye
camelia star-m 2016.10: OUTPUT«().Seq␤»
phatbot star: dd (bag() but "x").combinations.grep: { [⊎] $^stuff-we-want } 22:55
camelia star-m 2016.10: OUTPUT«().Seq␤»
phatbot star: dd (bag(42) but "x", bag(72) but "x").combinations.grep: { [⊎] $^stuff-we-want }
camelia star-m 2016.10: OUTPUT«Cannot unbox a type object (Any) to a str.␤ in block <unit> at <tmp> line 1␤␤»
phatbot star: dd (bag(42) but "x", bag(72) but "x").combinations.grep: { [⊎] @^stuff-we-want }
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␤»
phatbot nope
m: ((1, 2), (3, 4)).grep: { dd @_ } 22:57
camelia rakudo-moar f8cbca: OUTPUT«[1, 2]␤[3, 4]␤»
phatbot trippy... how does it know to do that?
m: { dd @_ }.arity.say
camelia rakudo-moar f8cbca: OUTPUT«0␤»
AlexDaniel t 22:59
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]␤»
phatbot crazy
lizmat phatbot: not sure what you're referring to?
the fact that @_ is set?
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
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))␤»
RabidGravy right, finally managed to get that scheduled for tomorrow (well in an hour)
phatbot So the output would be something like this instead of the current one
lizmat m: ((1,2)).grep: { dd @_ } 23:02
camelia rakudo-moar f8cbca: OUTPUT«[1]␤[2]␤»
phatbot m: (1, (1, 2), (3, 4), (5, 6, 7)).grep: -> *@x { dd @x }
camelia rakudo-moar f8cbca: OUTPUT«[1]␤[1, 2]␤[3, 4]␤[5, 6, 7]␤»
lizmat phatbot: it's the 1 arg rule at work
phatbot m: -> *@x { dd @x }.arity.say 23:03
camelia rakudo-moar f8cbca: OUTPUT«0␤»
phatbot lizmat: magic. Got it :)
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)␤»
phatbot ok, now I get it :}
23:06 RabidGravy left 23:08 wamba left
phatbot Xliff: well, both of your tickets are way too hard for me. You should submit the other ones. 23:09
23:10 wamba joined
phatbot m: constant foo = 42; dd <foo> 23:10
camelia rakudo-moar f8cbca: OUTPUT«"foo"␤»
phatbot TIL we have this syntax
oh wait
We don't :)
m: constant foo = 42; <foo>
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 :)
lizmat m: <bar>
camelia rakudo-moar f8cbca: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant value bar in sink context (line 1)␤»
phatbot Oh, ok, now I get the warning
phatbot clearly needs a rest :(
lizmat perhaps we need to awesomify that error with a .perl ?
AlexDaniel m: say <foo>.perl 23:12
camelia rakudo-moar f8cbca: OUTPUT«"foo"␤»
phatbot perhaps
m: <\r\r\r>
camelia rakudo-moar f8cbca: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant value \r\r\r in sink context (line 1)␤»
phatbot m: qww<\r\r\r>
camelia rakudo-moar f8cbca: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant string "\\r\\r\\r" in sink context (line 1)␤»
phatbot one says "value" and the other "string" :/ 23:13
23:13 pyrimidine left
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)␤»
phatbot m: qww<42>
camelia rakudo-moar f8cbca: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant string "42" in sink context (line 1)␤»
phatbot m: qww<42>.^name.say
camelia rakudo-moar f8cbca: OUTPUT«Str␤»
phatbot Ah
23:14 pyrimidine joined
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)␤»
AlexDaniel that's an interesting error message
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)␤»
phatbot heh
AlexDaniel :|
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…»
timotimo haha :)
23:16 mawkish_ left
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
AlexDaniel
.oO( would you like some tea in sink context ?)
23:17
23:18 pyrimidine left
phatbot So how come /<sym>/ bug wasn't reported? Was it ruled DIHWIDT? 23:20
The fix is trivial but the impact from it :o 23:21
timotimo what exactly does the bug do?
23:21 loveperl joined
phatbot m: /<sym>/ 23:21
camelia rakudo-moar f8cbca: OUTPUT«===SORRY!===␤Substring length (-5) cannot be negative␤»
loveperl How to make comment blocks? 23:22
timotimo #`( ... ) will do it 23:23
or any kind of matching parenthesis
phatbot Or press the "Comment" key in your text editor :)
loveperl in vim
?
phatbot I've no idea what it is in vim, but it gotta have one 23:24
Ctrl+D?
That's what I have, but I'm pretty sure I always remap it to that combination
(in Atom)
timotimo in vim you typically have a cool plugin to do commenting for you, like NERDCommenter
23:28 rburkholder joined 23:33 maxp_ joined
Xliff phatbot: Understood. 23:33
Thanks for looking at them. 23:34
phatbot: Atom uses Ctrl+/ by default, I think
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
't have them when i just downloaded it from the ecosystem
23:38 pyrimidine joined
maxp_ good evening... 23:40
is there a way to debug regular expressions?
23:40 kyclark left
timotimo yup, install Debugger::UI::CommandLine and use perl6-debug-m on your thing 23:41
it'll single-step through your matching process for you
maxp_ ok thanks
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
maxp_ but Grammar::Debugger is for simple regex too?
timotimo yes 23:42
timotimo goes AFK
maxp_ ok thanks a lot
23:42 lukiramu left, mawkish_ left 23:43 mawkish_ joined, pyrimidine left 23:44 bjz joined
Xliff MasterDuke: You should use the git repository. I think I included it in the bug. If not, I will update. 23:46
And you shouldn't need the XML:: parts at all to get the error to occur.
23:46 girafe left
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
And I am wondering if that is part of the problem.
It would explain why my efforts to golf it have failed.
MasterDuke i tried to follow the directions in the bug report, but something didn't work
Xliff Which bug was this again?
23:48 bjz left
Xliff rt #130095 23:48
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130095
23:48 mawkish_ left
MasterDuke '../p6-XML-LibXML-work/lib' 23:49
23:49 mawkish_ joined
Xliff OK. Let me see if I can come up with better instructions. 23:49
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:51
23:51 loveperl left
MasterDuke i.e., it wouldn't compile, so i didn't get the MAST frame error 23:52
Xliff OK. You need XML::LibXML from here: github.com/Xliff/p6-XML-LibXML.git 23:54
In 01-basic.t in the p6-xslt dir, comment out "use XML::LibXML::CStructs :types;"
That should get the error.
Make sure your -I points to the lib dir of both XML::LibXML and XML::XSLT you have cloned. 23:55
I wish I could make this simpler. *sigh*
MasterDuke Class CStruct has no attributes, which is illegal with the CStruct representation. 23:58
at /home/dan/Source/perl6/xliff/p6-xslt/../p6-XML-LibXML/lib/XML/LibXML/CStructs.pm (XML::LibXML::CStructs):9 23:59