»ö« 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«738.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«PENGUIN2.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«PENGUIN3.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«PENGUIN3.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«PENGUIN1.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«PENGUIN2.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«PENGUIN2.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«PENGUIN0.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«PENGUIN0.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«1280390.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«PENGUIN0.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 HEADINGSTART OF TEXTSTART OF SELECTED AREASTART OF GUARDED AREASTART OF STRINGARABIC FIVE POINTED STARARABIC START OF RUB EL HIZBTIBETAN MARK DELIMITER TSHEG BSTARSTAR EQUALSSTAR OPERATORAPL 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«PENGUIN0.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 BLOCKPARTIAL LINE BACKWARDLATIN CAPITAL LETTER C WITH DOT ABOVELATIN 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/O4h3lMrUyPUnexpected 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« ()-0123456789<>ABCDEFGHIJKLMNOPQRSTUVWXYZabdeghilnoprstuvwxy» | ||
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»: PENGUIN0.4030984¦«HEAD»: PENGUIN0.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«12This Seq has already been iterated, and its values consumed(you might solve this by adding .cache on usages of the Seq, orby 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«FalseTrue» | ||
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«FalseYou 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«TrueFalse» | ||
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 40 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_0Prohibited 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>Confusedat <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 1Actually 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 1Actually 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)10-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/XUy1wTvMSaMissing semicolonat /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«FalseTrue» | ||
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:1Actually 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 1Actually 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 blockat <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 blockat <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 blockat <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 1Actually 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:1Actually 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 |