»ö« 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.
AlexDaniel_ timotimo: well, it says “syntax error” 00:08
so it's very on point
geekosaur p5's not known for awesome error messages
AlexDaniel_ attempts unclosed quote in perl5 and laughs 00:13
hmmmmm but it does point to the right line!
AlexDaniel_ takes back his laugh
HoboWithAShotgun doh! 00:15
i thougt in a construct like: if $obj does SomeRole would test wether $ob is doing a role or not 00:16
that introduced an interesting bug
HoboWithAShotgun m: role a { method x {}; }; my a $x; $a does a; say a.^methods.elems; 00:17
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$a' is not declared
at <tmp>:1
------> 3role a { method x {}; }; my a $x; 7⏏5$a does a; say a.^methods.elems;
HoboWithAShotgun m: role a { method x {}; }; my a $x; $x does a; say x.^methods.elems; 00:18
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
x used at line 1
HoboWithAShotgun m: role a { method x {}; }; my a $x; $x does a; say $x.^methods.elems;
camelia Cannot use 'does' operator with a type object.
in block <unit> at <tmp> line 1
HoboWithAShotgun m: role a { method x {}; }; class A does a {}; my A $x = A.new; $x does a; say $x.^methods.elems;
camelia 2
HoboWithAShotgun which method wins here? the last added? and can i "undo" a role from an obj 00:19
timotimo you can't, unless you store the original object and use "but" instead of "does" 00:23
mson How do I define a custom printing for my object?
timotimo mson: override the gist method, or the Str method
mson Thanks 00:24
timotimo gist is meant to "give you the gist" as human-friendly abbreviated output
for example, lists gist to have spaces instead of comma and quotes between the elements, and they stop at the 100th element
timotimo m: my @a = <hi there 1 2 3 foo bar>; say @a.gist; say @a.Str 00:24
camelia [hi there 1 2 3 foo bar]
hi there 1 2 3 foo bar
timotimo and Str is joined by spaces, too, but doesn't have opening and closing brackets 00:25
mson Ah, nice distinction. So if I don't override gist but do override Str, which does say call?
timotimo m: my %foo = a => 1, b => 2, c => 3; say %foo.gist; say %foo.Str
camelia {a => 1, b => 2, c => 3}
a 1
b 2
c 3
timotimo say calls gist, put is like say but calls Str instead
geekosaur say always does .gist
timotimo but if you do 'say "something involving $foo"' it'll use .Str because that does regular string concatenation before say even enters the picture 00:26
in that case you can 'say "something involving ", $foo' and i think that uses gist for $foo then
geekosaur ...it suddenly occurs to me that if we ever get that p5 optimization then it could change program behavior 00:27
(where interpolations in that context get rewritten to not be interpolations)
timotimo please elaborate? 00:29
geekosaur hm, actually I think p5 always turns that into concat, so maybe not. 00:30
geekosaur was thinking p5 rewrites to not be an interpolation, thereby saving some string (re)allocations, but if it did so in something like say then it could change a .Str into a .gist 00:30
timotimo in p6 that also gets turned into straight up &infix:<~> invocations i believe
geekosaur but I think concat in p5 also always does .Str?
er, in p6 00:31
timotimo yes, concat always uses Str, or rather .Stringy i guess?
geekosaur it'd be a potential problem if it did .gist
geekosaur (but a firther optimization mght be to save mroe allocations by recognizing it could avoid the contact when it;s being done for .say --- but then you have to make sure it .Str-s instead of letting say .gist it) 00:32
... what is with my typing
avoid the concat
timotimo it could very well be our strands implementation conveys that potential benefit already 00:34
mson Gotcha, thanks both. 00:36
I'm on the docs/routine/gist page, but it lists so many methods. Should I override the Mu method, or something else? 00:37
timotimo going to bed, gnite! 00:38
mson night
timotimo there'll only be the method gist you put into your class that'll be relevant 00:38
geekosaur youy change the type/class you want to affect it in; anything else will use the .gist of the thing it's trying to stringify 00:39
timotimo it's important to know that what's before the : in the signature (like Blob:D) is what the method is called on
o/
Herby_ \o 00:40
geekosaur btw rt.perl.org/Public/Bug/Display.html?id=123016 is the sort of thing that 'leaks' how .gist is implemented and inherited or not inherited 00:42
geekosaur (caused by the thing using it being handed something it only knows as Mu, so it uses Mu.gist instead of the specific class's .gist. which is arguably incorrect OO but the runtime cost of doing it right in at least some cases is rather high) 00:45
mson` Can someone help me understand "No such method <method> for invocant of type 'Any'"? Code is here if it helps: pastebin.com/3cQz8vmg 00:56
geekosaur would help to know which method and where the error occurs 00:58
mson Oh yeah. In gist, line 19, after the say on line 25. 01:00
geekosaur oh, I think you are doing this incorrectly 01:07
the bare .concat_list_str does not operate on 'self' but on $_
$_ is Any 01:08
(it is not set to the current instance)
geekosaur you either want concat_list_str to be a method on Node and use $.head.concat_list_str, or to be a sub and call it without the . 01:09
or explciitly use self.concat_list_str(...)
likewise with the recursive call
mson` Aha. sub was what I wanted. Thanks. 01:11
Herby_ what does everyone use for parsing html in p6? 01:12
BeautifulSoup makes it easy when I'm poking around Python
AlexDaniel_ .seen Herby 01:25
yoleaux I saw Herby 5 Nov 2016 22:43Z in #perl6: <Herby> \o
AlexDaniel_ .seen Herby_
yoleaux I saw Herby_ 01:12Z in #perl6: <Herby_> BeautifulSoup makes it easy when I'm poking around Python
AlexDaniel_ .tell Herby normally Gumbo ( github.com/Skarsnik/perl6-gumbo ), but see RT #131003 01:26
yoleaux AlexDaniel_: I'll pass your message to Herby.
AlexDaniel_ oops
.tell Herby_ normally Gumbo ( github.com/Skarsnik/perl6-gumbo ), but see RT #131003
yoleaux AlexDaniel_: I'll pass your message to Herby_.
synopsebot RT#131003 [open]: rt.perl.org/Ticket/Display.html?id=131003 [ANNOYING][SEGV] Heap corruption when using Gumbo
Herby_ AlexDaniel: thanks for the gumbo 02:49
yoleaux 01:26Z <AlexDaniel_> Herby_: normally Gumbo ( github.com/Skarsnik/perl6-gumbo ), but see RT #131003
synopsebot RT#131003 [open]: rt.perl.org/Ticket/Display.html?id=131003 [ANNOYING][SEGV] Heap corruption when using Gumbo
Herby_ how do I find the index of an element in an array? <john mary joseph sam> and I want to return the index of Mary 02:50
geekosaur m: <john mary joseph sam>.grep('mary', :k).say 02:56
camelia (1)
geekosaur :k means return the key, which for a Positional is the index 02:57
Herby_ geekosaur: thanks
my google-fu wasnt returning anything, other than an perl6maven article on a grep-index method
thou m: my @a = <john mary joseph sam mary>; sub find($needle, @haystack) { for @haystack.kv -> $k, $v { return $k if $v eq $needle }; return Nil; }; say find('mary', @a);
camelia 1
thou ^ What happens when you don't realize grep has :k option 02:58
Herby_ haha that's about how I was trying to put it together :)
Herby_ another basic question: is it possible to do multiple assignments in one line? 03:02
my $a; my $b; $a, $b = 1, 2
weabot yes
actually we'll see 03:03
m: my $a; my $b; $a, $b = 1, 2
camelia WARNINGS for <tmp>:
Useless use of $a in sink context (line 1)
Useless use of constant integer 2 in sink context (lines 1, 1)
weabot not like this
ugexe m: my $a; my $b; ($a, $b) = 1, 2; say $a; say $b 03:04
camelia 1
2
weabot well here we go
Herby_ ahh ok
weabot and like this you can make a function return many values and assign them like this
Herby_ my @a; my $b; my @cats = <sam diane>; ($a, $b) = @cats; say $a; say $b;
m: my @a; my $b; my @cats = <sam diane>; ($a, $b) = @cats; say $a; say $b;
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$a' is not declared. Did you mean '@a'?
at <tmp>:1
------> 3my @a; my $b; my @cats = <sam diane>; (7⏏5$a, $b) = @cats; say $a; say $b;
Herby_ m: my $a; my $b; my @cats = <sam diane>; ($a, $b) = @cats; say $a; say $b; 03:05
camelia sam
diane
Herby_ great. thanks weabot
I'm working my way through Automate The Boring Stuff, but using Perl 6 instead of Python of course 03:06
and using Think Perl 6 as reference where I can
weabot m: sub f(0) { return ($x + 1), ($x + 2),($x + 3); } my $a; my $b; my $c; ($a, $b, $c) = f(0);
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$x' is not declared
at <tmp>:1
------> 3sub f(0) { return (7⏏5$x + 1), ($x + 2),($x + 3); } my $a; my
weabot m: sub f($x) { return ($x + 1), ($x + 2),($x + 3); } my $a; my $b; my $c; ($a, $b, $c) = f(0); 03:07
camelia 5===SORRY!5=== Error while compiling <tmp>
Strange text after block (missing semicolon or comma?)
at <tmp>:1
------> 3 { return ($x + 1), ($x + 2),($x + 3); }7⏏5 my $a; my $b; my $c; ($a, $b, $c) = f(0
expecting any of:
in…
weabot yup
weabot goes on to an interpreter
well it works in the interpreter 03:08
Herby_ hmm
weabot sub f($x) { return $x+1, $x+2, $x+3; } my $a; my $b; my $c; ($a, $b, $c) = f(0); 03:09
right
sub f($x) { return $x+1, $x+2, $x+3; } my $a; my $b; my $c; ($a, $b, $c) = f(0); put($a, $b, $c)
ugexe m: sub f($x) { return ($x + 1), ($x + 2),($x + 3); }; my $a; my $b; my $c; ($a, $b, $c) = f(0);
camelia ( no output )
geekosaur combined on one line like that, it needs the ; after the sub definition 03:11
weabot oooh ok 03:13
lizmat clickbaits p6weekly.wordpress.com/2017/10/09/...r-empathy/ 08:11
tyil hoelzro: I added a PR to the vim-perl6 repo 08:14
thunktone Is it possible to use a Signature variable when defining a new sub? 09:33
m: my $sig=:(Str $word, Int $count); sub rep $sig {print "$word " for $count}; rep 'hello', 3;
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3y $sig=:(Str $word, Int $count); sub rep7⏏5 $sig {print "$word " for $count}; rep '
expecting any of:
new name to be defined
jnthn thunktone: No 09:34
thunktone ok, thanks 09:35
sproctor @jnthn any plans for a cro 0.7.1 release including the recent bug fixes and the like? 09:37
jnthn sproctor: Yes, later this week, or next week, depending on how much time I find and how hard figuring out getting it onto CPAN will be :) 09:41
sproctor Cool. I keep meaning to take another look at it and I was hoping to have a slide or two about it in my talk for the LPW at the end of next month.
araraloren evening 10:27
DrForr %greeting<local> 10:32
piojo m: sub foo(% (:name(:$n))) { say $n; }; foo {name => 'Bill'} 10:49
camelia Bill
piojo What's the meaning of the ':' in ':$n'? It's optional, and causes problems if you try to unpack to a variable with the same name 10:50
piojo m: sub foo(% (:name(:$name))) { say $name; } 10:51
camelia 5===SORRY!5=== Error while compiling <tmp>
Name name used for more than one named parameter
at <tmp>:1
------> 3sub foo(% (:name(:$name)))7⏏5 { say $name; }
piojo but this is okay: 10:51
sub foo(% (:name($name))) { say $name; }; foo {name => 'Bill'}
m: sub foo(% (:name($name))) { say $name; }; foo {name => 'Bill'}
camelia Bill
CIAvash[m] :$name is the same as :name($name) 10:59
m: sub foo(% (:$name)) { say $name; }; foo {name => 'Bill'}
camelia Bill
piojo CIAvash: thanks. I must have mistyped that when I tried it 11:02
CIAvash: but the docs say to use % (:key-name(:$var-name)) (in the case where the two names don't match). Any idea what the second ':' is for? 11:03
piojo .tell Zoffix thanks for your work on repl-mode. Extremely helpful for use in cygwin. 11:05
yoleaux piojo: I'll pass your message to Zoffix.
CIAvash[m] m: sub foo(% (:name(:$n))) { say $n; }; foo {name => 'Bill'}; foo {n => 'Jill'}; 11:10
camelia Bill
Jill
CIAvash[m] I think you would do that if you wanted to use multiple key names. Can you give the link to the docs where it says you have to do this? 11:15
piojo CIAvash[m]: it doesn't say you have to, but it's the example: docs.perl6.org/type/Signature#Dest...Parameters 11:32
I'd like to understand what that colon means, and hopefully add it to the docs. (I could also add | and ! to the docs for capturing hash elements, since they're useful) 11:33
piojo ! and | work just like in regular signatures--making a hash element required, and allowing additional hash elements that aren't named 11:34
CIAvash[m] The docs probably need to show how to actually call and use the functions in the examples 11:40
CIAvash[m] the colon before variable is useful when the pair's key and the variable's name are the same, so you don't have to repeat it. 11:46
docs.perl6.org/type/Signature#Posi..._vs._Named
Geth doc: fluca1978++ created pull request #1594:
Add a short introduction to subroutines and precedence dropping.
11:47
piojo CIAvash[m]: Thanks, but I'm not sure that applies here, because it's the second colon--> :name(:$username) 11:49
CIAvash[m]: I've gotta run now, but I'll add some more examples and make a PR, then will file an issue that asks why :name(:$username) is shown instead of :name($username) 11:50
CIAvash[m] piojo: Yeah, I don't think it's necessary there, unless I'm missing something. 11:53
wander4096 gist.github.com/W4anD0eR96/106de39...975e4b6b01 11:54
piojo: gist.github.com/W4anD0eR96/106de39...975e4b6b01
it creates alias
and this mentions about it docs.perl6.org/language/functions#...entry-MAIN 11:55
piojo wander4096: thanks, that's very helpful! (I must have screwed up my test code again, because I actually tried to test this possibility) 11:59
wander4096 m: sub f(:name(:$username)) { say $username }; f(:name("x")); f(:username("y")) 12:00
camelia x
y
piojo wander4096: I wasn't saying I did it right! 12:01
ilmari m: sub f(:name(:user($username))) { say $username }; f(:name("x")); f(:username("y")); f(:user("z"))
camelia x
Unexpected named argument 'username' passed
in sub f at <tmp> line 1
in block <unit> at <tmp> line 1
ilmari m: sub f(:name(:user($:username))) { say $username }; f(:name("x")); f(:username("y")); f(:user("z"))
camelia 5===SORRY!5===
In signature parameter, placeholder variables like $:username are illegal
you probably meant a named parameter: ':$username'
at <tmp>:1
------> 3sub f(:name(:user($:username7⏏5))) { say $username }; f(:name("x")); f(
Va…
ilmari m: sub f(:name(:user(:$username))) { say $username }; f(:name("x")); f(:username("y")); f(:user("z"))
piojo ilmari: :$username, not $:username
camelia x
y
z
ilmari piojo: yeah, I realised
CIAvash[m] piojo: I showed the example with the alias :) irclog.perlgeek.de/perl6/2017-10-10#i_15282601 12:02
piojo CIAvash[m]: Indeed you did. A belated thank you! My eyes must have passed over that, because I thought I had already attempted that 12:04
Geth doc: W4anD0eR96++ created pull request #1596:
Rewrite intro of alias named signature
12:57
melezhik_ Hi Perl6 folks, dev.to - seems very cool dev blog site, I encourage everyone involved in Perl6 add some Perl6 related posts here! (As I did ;-) 16:28
Geth doc: 06e8f698b1 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/testing.pod6
Specify signature of cmp-ok more accurately

  - To indicate it can be used to test with `=:=` operator
  - And that it doesn't interfere with ops that partly rely on
   address equivalency, such as `eqv`
Rakudo impl: github.com/rakudo/rakudo/commit/3684384db1 Spec: github.com/perl6/roast/commit/4bc442622d
16:44
synopsebot Link: doc.perl6.org/language/testing
tyil HoboWithAShotgun: you were the one who made that pr to the atom plugin to convert ascii ops into unicode ops right? was there a particular reason you also did the greek chars? 16:50
smls m: say "1" ~~ / \d <!before \d> /; 16:57
camelia Nil
smls ^^ <!before > should be able to match at the end of the input string, right?
wander README.md in doc says, to Building the HTML documentation, we run `make html` and `make run` 17:03
i wonder if every time after updating the source code, i should make again, which takes a long time 17:04
or the second time `make html` will be fast 17:05
gfldex wander: there is some caching going on but it wont make much of a difference 17:08
wander: look in the Makefile for --parallel=1 and --threads=1 to speed things up 17:10
perllearner89 perl6: multi postfix:<!>(Int $n) { [*] 2..$n }; say "5! is { 5! }"; 17:12
camelia 5! is 120
Error while reading '/home/camelia/p6eval-token': No such file or directory at /home/camelia/rakudo-j-inst/bin/eval-client.pl line 10.
perllearner89 perl6: multi postfix:<!>(Int $n) { [*] 2..$n; }; say "5! is { 5! }"; 17:14
camelia Error while reading '/home/camelia/p6eval-token': No such file or directory at /home/camelia/rakudo-j-inst/bin/eval-client.pl line 10.
5! is 120
timotimo we might want to throw rakudo-jvm out of the perl6 command 17:16
wander gfldex: got it 17:17
timotimo perllearner89: you'll get less noisy results if you use "m:" instead of "perl6:" 17:20
perllearner89 m: multi postfix:<!>(Int $n) { [*] 2..$n; }; say "5! is { 5! }"; say "6! is {6!}."; 17:27
camelia 5! is 120
6! is 720.
perllearner89 It's weird. On my perl6 version, trying to run `multi postfix:<!>(Int $n) { [*] 2..$n; }; say "5! is { 5! }"; say "6! is {6!}.";` results in a "Negation metaoperator not followed by valid prefix" error. 17:28
timotimo you're running it in the REPL? 17:31
that poor thing forgets newly defined operators between every line :(
awwaiid :( 17:31
timotimo it'll work if you put both statements in the same line with a ; in between
perllearner89 I've tried it on the REPL and as a standalone script and both fail. 17:32
timotimo oh, now that's interesting
perllearner89 Do you know any reason why that might be? 17:33
timotimo hm, can you upload your exact standalone script? 17:34
oh, also, is your perl6 --version near?
perllearner89 $*PERL is Perl 6 (6.c) and $*VM is moar (2017.09.1.580.g.631.b.3.bf.0.f)
timotimo ah, yes, that's good
perllearner89 Now that I am trying it again, it is working. It seems that I can't run the REPL and run the script separately or else they confuse each other. 17:38
perllearner89 Okay. Not it is just being weird. 17:44
*Now
perllearner89 How do I upload my test script? 17:44
tyil nc cry.nu 9999 < path/to/test.pl 17:45
perllearner89 nc cry.nu 9999 < /data/testing/perl6/learning.pl6 17:47
timotimo whoops, cry.nu has had its letsencrypt run out yesterday
timotimo perllearner89: you'd execute that in your shell, and you'll need to have netcat installed, though a simple perl6 one-liner could also do it 17:48
tyil samcv: your cert expired
timotimo: I reported it, should be fixed soon-ish
tyil you could use termbin for the time being, I dont know any other trustworthy hosts which such a service running 17:49
timotimo i like sprunge.us
cat /data/testing/perl6/learning.pl6 | curl -F 'sprunge=<-' sprunge.us 17:50
perllearner89 sprunge.us/JfDd
shadowpaste "ilmari" at 217.168.150.38 pasted "You can also use fpaste.scsys.co.uk/perl6" (1 line) at fpaste.scsys.co.uk/565310 17:51
tyil trying to curl them gives a 405 error 17:51
timotimo now that's interesting 17:52
tyil wanted to see if they used CF, thats a strong reason for me not to use them :p
but it seems its hosted by google, which I still dislike
so not adding it to my article against pastebin
perllearner89 sprunge.us/BhHX 17:53
But that one (sprunge.us/BhHX) works fine...
Why the disconnect?
moritz sorry, what was the minimal example of something that didn't work? 17:56
timotimo somehow the say "\$subref(4,6) is $subref(4,6)"; is breaking it 17:57
timotimo probably the string somehow runs away 17:57
tyil .tell melezhik nice article on sparrowdo, I might check it out when I have time to spare 17:58
yoleaux tyil: I'll pass your message to melezhik.
timotimo m: my $subref = -> $a, $b { say $a; }; say "\$foobar(4,6) is $subref(4,6)"; say "test"
camelia 4
$foobar(4,6) is True
test
Geth doc/molecules-patch-2: 1b50a0f943 | (Christopher Bottoms)++ (committed using GitHub Web editor) | doc/Type/IO/Path.pod6
File test adverb forms with links to method forms

Also intended to fix broken link to docs.perl6.org/type/IO::Path#File_..._operators from docs.perl6.org/language/5to6-perlf...Filetests. Much was copied from docs.perl6.org/type/IO::Path#File_...operators.
18:00
doc: molecules++ created pull request #1598:
File test adverb forms with links to method forms
perllearner89 m: my $sref = { $^x**2 + $^y**2; }; say "\$sref.(4,6) is $sref.(4,6)"; 18:04
camelia $sref.(4,6) is 52
wander perllearner89: what's your first version of code? 18:11
i run the code in sprunge.us/BhHX and every thing runs right 18:12
perllearner89 sprunge.us/JfDd fails to execute and was my first version.
sprunge.us/BhHX was my attempt at a minimal version, but doesn't fail.
Geth doc/master: 4 commits pushed by (Alex Wander)++, (Patrick Spek)++ 18:15
perllearner89 This is a minimal failing example: sprunge.us/HdRI
m: sub my_sub(Int() $x, Int() $y) { return $x**2 + $y**2; } my $result = my_sub(4,6); say "\$result is $result"; multi postfix:<!>(Int $n) { [*] 2..$n; } say "5! is { 5! }"; 18:16
camelia 5===SORRY!5=== Error while compiling <tmp>
Strange text after block (missing semicolon or comma?)
at <tmp>:1
------> 3 Int() $y) { return $x**2 + $y**2; }7⏏5 my $result = my_sub(4,6); say "\$resul
expecting any of:
in…
perllearner89 m: sub my_sub(Int() $x, Int() $y) { return $x**2 + $y**2; }; my $result = my_sub(4,6); say "\$result is $result"; multi postfix:<!>(Int $n) { [*] 2..$n; }; say "5! is { 5! }";
camelia 5===SORRY!5=== Error while compiling <tmp>
Negation metaoperator not followed by valid infix
at <tmp>:1
------> 3(Int $n) { [*] 2..$n; }; say "5! is { 5!7⏏5 }";
expecting any of:
infix
infix stopper
wander seems like something wrong with `say` 18:19
perllearner89 m: sub my_sub(Int() $x, Int() $y) { return $x**2 + $y**2; }; my $result = my_sub(4,6); say "\$result is $result"; multi postfix:<!>(Int $n) { [*] 2..$n; }; say "5! is ", 5!;
camelia $result is 52
5! is 120
perllearner89 When the code is in an execution block in the string in say, it fails, but when listed as an argument to say, it works. 18:20
Why?
wander if you remove the say before `say "5! is { 5! }";'
wander then there is no error msg 18:20
perllearner89 m: sub my_sub(Int() $x, Int() $y) { return $x**2 + $y**2; }; my $result = my_sub(4,6); say "\$result is $result"; multi postfix:<!>(Int $n) { [*] 2..$n; }; "5! is { 5! }"; 18:21
camelia 5===SORRY!5=== Error while compiling <tmp>
Negation metaoperator not followed by valid infix
at <tmp>:1
------> 3:<!>(Int $n) { [*] 2..$n; }; "5! is { 5!7⏏5 }";
expecting any of:
infix
infix stopper
wander To be exact, the say statement in form `say "\$result is $result"`
perllearner89 m: sub my_sub(Int() $x, Int() $y) { return $x**2 + $y**2; }; my $result = my_sub(4,6); "\$result is $result"; multi postfix:<!>(Int $n) { [*] 2..$n; }; say "5! is { 5! }"; 18:22
camelia 5===SORRY!5=== Error while compiling <tmp>
Negation metaoperator not followed by valid infix
at <tmp>:1
------> 3(Int $n) { [*] 2..$n; }; say "5! is { 5!7⏏5 }";
expecting any of:
infix
infix stopper
wander maybe relevant to the implementation of say 18:22
perllearner89 m: sub my_sub(Int() $x, Int() $y) { return $x**2 + $y**2; }; my $result = my_sub(4,6); "\$result is $result"; multi postfix:<!>(Int $n) { [*] 2..$n; }; "5! is { 5! }"; 18:23
camelia 5===SORRY!5=== Error while compiling <tmp>
Negation metaoperator not followed by valid infix
at <tmp>:1
------> 3:<!>(Int $n) { [*] 2..$n; }; "5! is { 5!7⏏5 }";
expecting any of:
infix
infix stopper
perllearner89 Without any reference to `say` it still dies.
wander yes, you do find it
m: m: sub my_sub(Int() $x, Int() $y) { return $x**2 + $y**2; }; my $result = my_sub(4,6); multi postfix:<!>(Int $n) { [*] 2..$n; }; say "5! is { 5! }";
camelia 5! is 120
wander m: my $result = 42; say "\$result is $result"; multi postfix:<!>(Int $n) { [*] 2..$n; }; "5! is { 5! }"; 18:24
camelia 5===SORRY!5=== Error while compiling <tmp>
Negation metaoperator not followed by valid infix
at <tmp>:1
------> 3:<!>(Int $n) { [*] 2..$n; }; "5! is { 5!7⏏5 }";
expecting any of:
infix
infix stopper
wander m: my $result = 42; "\$result is $result"; multi postfix:<!>(Int $n) { [*] 2..$n; }; "5! is { 5! }";
camelia 5===SORRY!5=== Error while compiling <tmp>
Negation metaoperator not followed by valid infix
at <tmp>:1
------> 3:<!>(Int $n) { [*] 2..$n; }; "5! is { 5!7⏏5 }";
expecting any of:
infix
infix stopper
Geth doc/molecules-patch-2: fc97c3981b | (Christopher Bottoms)++ (committed using GitHub Web editor) | doc/Type/IO/Path.pod6
Wrapped lines in proposed changes to 80 characters
18:25
perllearner89 m: sub my_sub(Int() $x, Int() $y) { return $x**2 + $y**2; }; my $result = my_sub(4,6); say "\$result is $result"; multi postfix:<!>(Int $n) { [*] 2..$n; }; say "5! is { 5!; }";
camelia 5===SORRY!5=== Error while compiling <tmp>
Negation metaoperator not followed by valid infix
at <tmp>:1
------> 3(Int $n) { [*] 2..$n; }; say "5! is { 5!7⏏5; }";
expecting any of:
infix
infix stopper
Zoffix This seems to be that Quote lang braid caches Main braid and so it misses on it being modified by the introduction of the new op 18:28
m: ""; sub postfix:<!>($) {}; "{ 5! }"; 18:29
camelia 5===SORRY!5=== Error while compiling <tmp>
Negation metaoperator not followed by valid infix
at <tmp>:1
------> 3""; sub postfix:<!>($) {}; "{ 5!7⏏5 }";
expecting any of:
infix
infix stopper
Zoffix m: sub postfix:<!>($) {}; ""; "{ 5! }";
camelia WARNINGS for <tmp>:
Useless use of constant string "" in sink context (line 1)
Use of Nil in string context
in block <unit> at <tmp> line 1
perllearner89 m: sub postfix:<!>(Int $n) { [*] 2..$n; }; say ""; 18:30
camelia
perllearner89 m: sub postfix:<!>(Int $n) { [*] 2..$n; }; say ""; say "{ 5! }";
camelia
120
perllearner89 m: say ""; sub postfix:<!>(Int $n) { [*] 2..$n; }; say "{ 5! }";
camelia 5===SORRY!5=== Error while compiling <tmp>
Negation metaoperator not followed by valid infix
at <tmp>:1
------> 3ix:<!>(Int $n) { [*] 2..$n; }; say "{ 5!7⏏5 }";
expecting any of:
infix
infix stopper
Zoffix Filed as rt.perl.org/Ticket/Display.html?id=132262 18:31
perllearner89 Thanks for that.
Zoffix takes a crack at it 18:34
[Coke] waves from $DAYJOB 18:38
Zoffix \o 18:39
Looks like some bolts were left out during Cursor Match refactor that caused this. 18:41
Zoffix Gonna try to fix it later (maybe TimToady would know a hint :)) 18:41
Zoffix my %quote_lang_cache hehe. Looks like a perfect place for bugs to hide at 18:45
HoboWithAShotgun i am doing this: my $handler-name = self.event-to-handler-name( $event ); my $handler = self.^methods.first({ .name ~~ $handler-name }); &($handler)($event); 18:47
however, besides from being super clumy probably that gives me an error: P6opaque: no such attribute '$!on-key-press' in type Terminal::Vision::Widgets::TextInput when trying to get a value
Zoffix Are you using nqp ops? 18:48
HoboWithAShotgun but that can't be, since that attribute is defined in the same role as the method that trows the error
Geth doc: 1b50a0f943 | (Christopher Bottoms)++ (committed using GitHub Web editor) | doc/Type/IO/Path.pod6
File test adverb forms with links to method forms

Also intended to fix broken link to docs.perl6.org/type/IO::Path#File_..._operators from docs.perl6.org/language/5to6-perlf...Filetests. Much was copied from docs.perl6.org/type/IO::Path#File_...operators.
synopsebot Link: doc.perl6.org/type/IO/Path
Geth doc: fc97c3981b | (Christopher Bottoms)++ (committed using GitHub Web editor) | doc/Type/IO/Path.pod6
Wrapped lines in proposed changes to 80 characters
doc: da19f6742a | (Patrick Spek)++ (committed using GitHub Web editor) | doc/Type/IO/Path.pod6
Merge pull request #1598 from perl6/molecules-patch-2

File test adverb forms with links to method forms
Zoffix m: $ = ""; sub postfix:<♥>($) {42}; try q/"{ 5♥ }"/.EVAL; say $!.^name 18:52
HoboWithAShotgun ah. i must do &(self.$handler)($event)
camelia X::Syntax::Confused
Zoffix Weird. With my fix I get the same result in $!, but the actual code doesn't die. 18:53
I guess it's left over from something
Zoffix And `say try q/say "{ 5♥ }"/.EVAL` gives Nil, wheareas `say q/say "{ 5♥ }"/.EVAL` prints result and then True. 18:55
perllearner89 m: say ""; sub postfix:<!>(Int $n) { [*] 2..$n; }; say "{ 5! }"; 19:12
camelia 5===SORRY!5=== Error while compiling <tmp>
Negation metaoperator not followed by valid infix
at <tmp>:1
------> 3ix:<!>(Int $n) { [*] 2..$n; }; say "{ 5!7⏏5 }";
expecting any of:
infix
infix stopper
Zoffix TimToady: are you around? Since Big Slang Refactor, Quote braid overly-eagerly caches langs here: github.com/rakudo/rakudo/blob/e135...p#L64-L114 Any idea what's a good fix? I could nuke the entire quote cache when installing categoricals ( github.com/rakudo/rakudo/blob/e135...4907-L4911 ) but that feels too big a hammer... The cache gets base lang 19:16
name from `$l.HOW.name($l)` does that now change differently when mixins happen?
buggable: eco 19:17
buggable Zoffix, Out of 920 Ecosystem dists, 0 have warnings, 9 have errors, and 0 have no tags in META file. See modules.perl6.org/update.log for details
Zoffix ^ lots of dists with JSON errors it seems. Sent a PR to BioInfo already don't got time ATM to send the rest
Zoffix (search build log for "[error]" to find them) 19:18
jnthn 0 have no tags? :)
jnthn looks at a META6.json file of his own that has none :) 19:18
mst Zoffix: ranguard had a lot of 'fun' with that with the psixdists test runs 19:23
Zoffix :) The bot was never updated to handle the new TODO page ( modules.perl6.org/todo/ ) where the warnings about tags were migrated to
johnjohn101 did perl six slow down development? seems like rakudo perl was last updated in july 19:24
Zoffix johnjohn101: updated where? 19:27
The repo was last updated like an hour ago :)
Latest release was September's third Saturday.
johnjohn101 i'm looking on the webpage
Zoffix johnjohn101: no, Rakudo Star still gets released quarterly. 19:28
No slowdown there.
huggable: star 19:29
huggable Zoffix, Estimated Rakudo Star releases for 2017: .01, .04, .07 & .10
johnjohn101 ok, i thought it was monthly. july is ok to test with?
Zoffix johnjohn101: compiler-only is released monthly yeah
huggable: debs
huggable Zoffix, CentOS, Debian, Fedora and Ubuntu Rakudo packages: github.com/nxadm/rakudo-pkg/releases
Zoffix johnjohn101: July is ok yeah
johnjohn101 thanks for github 19:30
Zoffix doesn't see any slowdown in code frequency: github.com/rakudo/rakudo/graphs/code-frequency
or I guess this is a better view: github.com/rakudo/rakudo/graphs/commit-activity 19:31
And the lul in July/August 'cause some devs were vacationing 19:32
Zoffix &
HoboWithAShotgun m: say (1 ... ∞)[* - 1] 20:40
camelia Cannot .elems a lazy list
in block <unit> at <tmp> line 1
lizmat HoboWithAShotgun: what did you expect? Inf ? 20:44
gfldex Int - 1 sounds about right. Writing that do disk might be tricky tho. 20:46
*Inf - 1
lizmat m: say Inf - 1
camelia Inf
gfldex m: say so Inf - 1 == Inf; 20:47
camelia True
HoboWithAShotgun well perl is wrong there 20:48
i think
m: sub foo { say 'foo' }; sub bar { say 'bar' }; my &both = &foo ∘ &bar; both() 20:49
camelia bar
Too many positionals passed; expected 0 arguments but got 1
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1
gfldex depends a bit if you define Inf as countable or uncountable
HoboWithAShotgun m: sub foo { say 'foo' }; sub bar { say 'bar' }; my &both = &foo ∘ &bar; both
camelia bar
Too many positionals passed; expected 0 arguments but got 1
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1
HoboWithAShotgun mmh. that should work, shouldn't it? 20:50
gfldex HoboWithAShotgun: no 20:50
the function combinator got strict requirements on arity 20:51
HoboWithAShotgun m: sub foo -> $x { say $x }; sub bar { 'bar' }; my &both = &foo ∘ &bar; both 20:55
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3sub foo7⏏5 -> $x { say $x }; sub bar { 'bar' }; my
expecting any of:
new name to be defined
HoboWithAShotgun m: sub foo($x) { say $x }; sub bar { 'bar' }; my &both = &foo ∘ &bar; both
camelia bar
HoboWithAShotgun ah allright. i read that example wrong. i figured they get just called in sequence and not nested 20:56
gfldex m: my &foo = -> $x { say $x }; sub bar { 'bar' }; my &both = &foo ∘ &bar; both
camelia bar
gfldex that's another docs issue 20:57
HoboWithAShotgun this time they are clear enough- The function composition operator infix:<∘> or infix:<o> combines two functions, so that the left function is called with the return value of the right function 20:58
gfldex it's Callable not a function 20:59
gfldex most of the time the docs say „function“ it should say Callable 21:00
gfldex or Routine, where a Block wont work 21:00
HoboWithAShotgun m: say (1, 2, 2, 3).Bag (<+) (3, 2, 1).Bag; 21:16
camelia False
HoboWithAShotgun m: say (1, 2, 2, 3).Bag (>+) (3, 2, 1).Bag;
camelia True
HoboWithAShotgun m: ( ( 0, 3 ... Inf ) (&) ( 0, 5 ... Inf) )[^100] 21:20
camelia Cannot coerce a lazy list onto a Set
in block <unit> at <tmp> line 1
Zoffix "well perl is wrong there" we follow IEEE :)
(in most places) 21:21
HoboWithAShotgun i'm not a mathematician, but Inf(R) > Inf(N), that I know. Not sure if that means Inf - 1 < Inf 21:22
probably not
Zoffix In math, maybe. In computers nope
Just like dividing by zero is valid 21:23
m: say (1/0).Num
camelia Inf
Zoffix m: say (-1/0).Num
camelia -Inf
HoboWithAShotgun i had a discussion over at #math the other day about exactly that
Zoffix s/computers/IEEE/;
HoboWithAShotgun and it's wrong. dividing by zero should die fatally 21:24
AlexDaniel- shrugs 21:25
Zoffix :) and should a rocket explode if one of its sensors failed to read a value? :)
Zoffix & 21:26
HoboWithAShotgun that's probably going to happen anywhay when said rocket opens the fuel injectors infinitly wide 21:27
HoboWithAShotgun I mean I wouldn't mind if 1/0 returned a Failure, but Inf , no, that's a wrong decision 21:29
AlexDaniel- HoboWithAShotgun: well, at what point do you want your rocket to explode? 21:30
for example
m: say (1/0).nude
camelia (1 0)
AlexDaniel- that's alright
m: say 1/0
camelia Attempt to divide 1 by zero using div
in block <unit> at <tmp> line 1
AlexDaniel- but this is not
HoboWithAShotgun ah, allright 21:32
samcv tyil, thanks. restarted nginx 21:43
had a new cert but it hadn't loaded 21:44
tyil ^_^ 21:45
samcv tyil, added `--post-hook "nginx -t && systemctl restart nginx"` to the cronjob 21:53
tyil hot
samcv oh actually. changing that to --deploy-hook since i only want it to run when cert has changed 21:54
Herby_ \o 22:35
tyil o/ 22:38
timotimo o 22:41
Geth whateverable: 2f4f1de1b7 | (Aleks-Daniel Jakimenko-Aleksejev)++ | bin/Greppable.p6
Add support for modules on CPAN and GitLab
23:02
timotimo cool
AlexDaniel- moritz++ 23:03
Geth whateverable: cce221c01f | (Aleks-Daniel Jakimenko-Aleksejev)++ | bin/Greppable.p6
Oops

What is this line doing there? I have no idea. It looked legit so I didn't notice…
23:10