»ö« 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.
timotimo cool 00:00
timotimo well, i'm very glad i could help 00:21
i feel pretty useless today in general :\
IOninja :) 00:26
Well, I would've given up otherwise :) 00:27
So you were useful
timotimo <3 00:29
moritz: how do we make other sites-enabled on www.p6c.org work with https? gtk-dlls.p6c.org for example just forwards you to tthe design docs 00:33
oh, i see, a le-ssl.conf exists 00:34
timotimo doesn't know how to work that
MasterDuke timotimo: got distracted by dinner. do you have some example code that produces a small profile i can work with? 00:35
timotimo i didn't have anything. maybe use --profile-compile with one of the nqp files? 00:36
so you don't have to rebuild rakudo every time
IOninja Presumably you just run `sudo certbot --apache` and then select gtk-dlls.p6c.org to enable the SSL on 00:37
timotimo oh? let's see
no such command exists here
IOninja hehe, I don't get design docs; chrome cries: "Attackers might be trying to steal your information from gtk-dlls.p6c.org" 00:38
timotimo ah, it's installed to root's home
well, yeah, of course
you get the design docs when you say "yeah take me there anyway please"
IOninja mhm
timotimo this is pleasantly easy 00:39
IOninja indeed
timotimo it seems like i made it 00:40
i selected the Secure version
IOninja yup SSL works for me
timotimo because you really don't want to download dlls over http
also, we want to update those
but i forgot where they came from
MasterDuke timotimo: i just ran `./nqp-m --profile --profile-filename=t.json -e 'sub a($a) { my $b := 0; while ++$b < $a { say("a"); }; }; a(2); a(4); say("a");'` and then the same thing with .sql 00:41
IOninja Wonder if that breaks anything... like something trying to download them using, say, LWP::Simple without SSL sock installed
star: use LWP::Simple; LWP::Simple.get: "gtk-dlls.p6c.org/libatk-1.0-0.dll"
camelia 501 Protocol scheme 'https' is only supported if IO::Socket::SSL is installed <URL:gtk-dlls.p6c.org/libatk-1.0-0.dll>

in method request_shell at /home/camelia/star-2016.10/share/perl6/site/sources/2A99795C71C31D3D9A9D39DCFC0379F0F4CDEDC5 (LWP:…
MasterDuke and i see callee entries with the same id value in both
timotimo ugh. to hell with windows ;_;
AlexDaniel looks at some code that he decided to “commit later” 00:55
AlexDaniel will never do this mistake again
IOninja m: my @data; say +@data; @ = @data.sort: *.<name>; 00:58
camelia 0
This type (Scalar) does not support elems
in block <unit> at <tmp> line 1
IOninja This Routine Map script is a cornucopia of bugs. 00:59
AlexDaniel m: my @data; @data.sort: *.<name>; 00:59
camelia ( no output )
AlexDaniel m: my @data; say +@data; @data.sort: *.<name>; 01:00
camelia 0
This type (Scalar) does not support elems
in block <unit> at <tmp> line 1
AlexDaniel m: my @data; say +@data
camelia 0
AlexDaniel WTF?
IOninja reification
m: my @data; @data.elems; @data.sort;
camelia This type (List) does not support elems
in block <unit> at <tmp> line 1
AlexDaniel :-|
SmokeMachine IOninja: sorry again, but I read about roles that can't be punned... all roles can be punned with it: github.com/FCO/Punnable 01:09
IOninja SmokeMachine: it's too hackish for my tastests. 01:13
man, unique :with(&[eqv]) on a bunch of Method objects takes ages :/ 01:20
oh, wait. These aren't methods but complex structures :} 01:22
hm, still slow as hell. 4863 objects 01:26
Methods and Submethods
IOninja hm, it uses an array instead of a hash to keep seen things :S weird 01:33
IOninja does something about it 01:35
But first... COFFEE!
MasterDuke the `:&as!, :&with!` version looks the same 01:36
IOninja Ah, I see. It calls the :&with for all the seen elements for each new element 01:45
hence the array
IOninja leaves it alone
I need to use :as{.perl} instead of :with(&[eqv]) 01:46
It was running for 20m on the 4863 Method objects before I killed it just now
m: say 4863²
camelia 23648769
IOninja or is it O(n!) 01:47
m: my $n = 0; @ = <a b c>.unique: :with{$n++; rand}; say $n 01:48
camelia Too many positionals passed; expected 0 or 1 arguments but got 2
in block <unit> at <tmp> line 1
IOninja m: my $n = 0; @ = <a b c>.unique: :with{@ = $^a, $^b; $n++; rand}; say $n
camelia 2
IOninja m: my $n = 0; @ = ^10 .unique: :with{@ = $^a, $^b; $n++; rand}; say $n
camelia 9
IOninja m: my $n = 0; @ = ^1000 .unique: :with{@ = $^a, $^b; $n++; rand}; say $n
camelia 999
IOninja m: my $n = 0; my @z = ^1000 .unique: :with{@ = $^a, $^b; $n++; rand}; say $n; say @z.elems 01:49
camelia 999
1
IOninja m: my $n = 0; my @z = ^1000 .unique: :with{@ = $^a, $^b; $n++; rand}; say $n; say @z
camelia 999
[0]
IOninja dahell
ah 01:50
m: my $n = 0; my @z = ^1000 .unique: :with{@ = $^a, $^b; $n++; 0}; say $n; say @z
camelia 499500
[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84…
IOninja m: my $n = 0; my @z = ^1000 .unique: :with{@ = $^a, $^b; $n++; 0}; say $n;
camelia 499500
IOninja m: my $n = 0; @ = ^10 .unique: :with{@ = $^a, $^b; $n++; 0}; say $n; 01:51
camelia 45
IOninja m: say [*] ^10+1
camelia 3628800
IOninja m: my $n = 0; @ = ^4863 .unique: :with{@ = $^a, $^b; $n++; 0}; say $n;
camelia (timeout) 01:52
IOninja So it's around O(n²/2) 01:54
m: say 4863²/2
camelia 11824384.5
IOninja don't look that many. Maybe I'm wrong :)
m: for ^1000 { $ = infix:<eqv> Int.^methods[10..11] }; say now - INIT now 01:55
camelia 0.080323
IOninja m: for ^11824384 { $ = infix:<eqv> Int.^methods[10..11] }; say now - INIT now
camelia (timeout)
IOninja m: say (11824384*0.080323)/1000
camelia 949.76999603
IOninja so like 15 minutes 01:56
Geth routine-map: 7cdabb7337 | (Zoffix Znet)++ | 2 files
Add missing methods

The introspection does not descend into types with `::` in names. Fix by using recursive sub.
02:02
IOninja Looks much better now: map.perl6.party/
Found 4790 entries now vs ~2500 prior 02:03
there's a gazillion candidates for stuff like .Bool and stuff lol
timotimo that is so much data, i'd almost call it unusable?! 02:05
but how do i know
IOninja Depends on your use I guess. 02:06
Would be nice to collapse by name...
MasterDuke IOninja: is sorting still really slow? 02:07
IOninja ? sorting of what?
MasterDuke by arity and such 02:08
IOninja Was it really slow?
MasterDuke 5-7s, but it locks my browser for the first 3-4 02:10
Geth routine-map: d8f10f7ed8 | (Zoffix Znet)++ | mapper.p6
Include number of unique routine names during generation
IOninja Only 1291 routines with unique names.
Get a better browser :P 02:11
It takes a few seconds in Chrome, but nothing locks up
AlexDaniel I've noticed that lately too, chromium works smoother, for whatever reason 02:12
MasterDuke FF 51
IOninja Firefox is crap
AlexDaniel IOninja: perhaps, but at least it doesn't force its understand of how a keyboard layout should work on me 02:13
understanding*
IOninja hm, sorting by filename seems to be busted... :/
ZzZombo How can I make s/// return the modified copy, like in P5 with IIRC :s?
AlexDaniel use S///
with capital S
IOninja ZzZombo: use .subst()
MasterDuke i switched from FF to chrome a long time ago, but then switched back cause chrome got slower and slower. it also didn't handle lots of tabs well 02:14
AlexDaniel MasterDuke: you're so privileged to be able to switch browsers like this… 02:16
for me it has always been like this: 1) Open Chromium 2) Realize that Ctrl+Shift+Left/Right does not work 3) Well, perhaps next time? Switch back to FF 02:17
MasterDuke the silver lining of not knowing any other languages well enough to want or be able to use them in everyday life
AlexDaniel ah, it's even worse. Selecting with shift doesn't work at all…
maybe I should submit a bug report though… 02:20
IOninja m: -> :$x :$y {} 02:23
camelia 5===SORRY!5=== Error while compiling <tmp>
Cannot put required parameter $y after variadic parameters
at <tmp>:1
------> 3-> :$x :$y7⏏5 {}
expecting any of:
constraint
MasterDuke is there any convenient way to know the equivalent of /usr/bin/time's maxresidentk during runtime? 02:28
IOninja m: sub x (% (:$made-on, :$routines, :$total, :$unique)) {␤␤␤␤␤␤␤␤␤␤␤␤␤ Q:c:to/END/␤y{$total}y␤END␤ }( |%(:42made-on, :42routines, :42total, :42unique) ) 02:30
camelia Too few positionals passed; expected 1 argument but got 0
in sub x at <tmp> line 15
in block <unit> at <tmp> line 1
IOninja m: sub x (% (:$made-on, :$routines, :$total, :$unique)) {␤␤␤␤␤␤␤␤␤␤␤␤␤ Q:c:to/END/␤y{$total}y␤␤␤␤␤␤␤␤␤␤␤{'meow'}␤END␤ }( |%(:42made-on, :42routines, :42total, :42unique) ) 02:31
camelia Too few positionals passed; expected 1 argument but got 0
in sub x at <tmp> line 26
in block <unit> at <tmp> line 1
IOninja Bug. If anyone wants to report (reported `line` is for the HEREDOC's last block, even though the issue is in `sub x`'s arguments)
IOninja heh, joke's on me for lauding Chrome over FF... The sorting ain't broken in FF 02:40
but is in Chrome
Geth routine-map: e75143f64a | (Zoffix Znet)++ | 2 files
Add info to page: generated on, total, total unique
02:43
IOninja Reported: rt.perl.org/Ticket/Display.html?id...xn-1451087 02:52
Came up with a good title for the final result of IO grant and changed routines and whatnot: IOcalipse 02:59
:)
IOninja boots up work laptop to design a trendy logo 03:00
Well, maybe framing it as a disaster is a bad idea.... 03:06
I got it! IOwesomeness 03:07
:D
Amusing that www.thesaurus.com/browse/good?s=t lists `bad` as synonym of `good` 03:08
*cue Hamlet*
hobbs are you a bad enough dude to rescue the president? 03:11
IOninja Rescuing Mr. Donald indeed would be pretty bad :P 03:14
I recall someone had a B&W Camelia logo? Any files... 03:15
Like this one but vector: madcapjake.github.io/2015/perl6-file-icons/ 03:16
AlexDaniel there was a whole repo of these 03:17
IOninja Juerd: yo where's the svg's at 03:18
hobbs in the arcade edition it was President Ronnie 03:19
AlexDaniel IOninja: github.com/MadcapJake/metamorphosi...ter/images :( 03:21
no svg 03:22
IOninja Thanks. PNG will do for my current need.
If anyone digs up SVGs, please add them to github.com/perl6/marketing/tree/ma...Os/Camelia 03:23
AlexDaniel actually…
juerd.nl/tmp/Camelia_mono_1path.svg
IOninja hah cool
AlexDaniel IOninja: I mean… you said “like this one but vector” 03:23
but that's exactly the same image used in the article 03:24
IOninja .ask Juerd what's the license for juerd.nl/tmp/Camelia_mono_1path.svg ? I wanna add it to github.com/perl6/marketing/
yoleaux IOninja: I'll pass your message to Juerd.
IOninja AlexDaniel: oh :) 03:24
IOninja Artistic License 2.0 requires release under same lisense innit? 03:25
AlexDaniel IOninja: the license is… © 2009 Larry Wall 03:26
AlexDaniel as, I believe, it is the same image but with different colors 03:26
IOninja That's the original one. 03:27
Section 4 of the license appears to allow distribution under different license. As long as doesn't introduce conflicts with original. 03:29
AlexDaniel original one what? 03:30
IOninja AlexDaniel: the original color logo of camelia 03:31
AlexDaniel IOninja: yea, so what makes you assume that it is Artistic License 2.0?
IOninja: because if so, I'd much rather see the copyright notice go in the docs footer
IOninja AlexDaniel: first paragraph: raw.githubusercontent.com/perl6/mu...amelia.txt 03:32
AlexDaniel ah
hm… right… 03:34
perhaps there's a reason why this has to be in the footer 03:36
although I cannot come up with any
Geth doc: 07b1eff619 | (Zoffix Znet)++ | template/footer.html
Link to details of logo's license
03:45
IOninja Because people may want to use it and it's useful to have legal info easily available. 03:46
Juerd IOninja: Same as the original. It's a minor adaptation. 04:03
yoleaux 03:24Z <IOninja> Juerd: what's the license for juerd.nl/tmp/Camelia_mono_1path.svg ? I wanna add it to github.com/perl6/marketing/
Juerd afk
dalek rketing: 87621b0 | (Zoffix Znet)++ | LOGOs/Camelia/Camelia-Black-and-White.svg:
Add BW Camelia logo
04:24
yoleaux 24 Feb 2017 14:30Z <AlexDaniel> dalek: ahoi, please update that repo to use geth instead: Change the webhook to geth.perl6.party/?chan=#perl6-dev (or #moarvm for moarvm), Content-type: application/json and "Send me everything."
AlexDaniel IOninja: ↑
.tell dalek ahoi, please update that repo to use geth instead: Change the webhook to geth.perl6.party/?chan=#perl6-dev (or #moarvm for moarvm), Content-type: application/json and "Send me everything." 04:25
yoleaux AlexDaniel: I'll pass your message to dalek.
Geth marketing: 87621b05b9 | (Zoffix Znet)++ | LOGOs/Camelia/Camelia-Black-and-White.svg
Add BW Camelia logo
travis-ci Doc build errored. Zoffix Znet 'Link to details of logo's license' 04:36
travis-ci.org/perl6/doc/builds/205429215 github.com/perl6/doc/compare/6d2af...b1eff619bc
IOninja The job exceeded the maximum time limit for jobs, and has been terminated. 04:37
AlexDaniel
.oO( why bother with bots when you can replace them all with people )
04:38
geekosaur www.sciencedaily.com/releases/2017...142117.htm so when's the first zoffixbot nervous breakdown? 04:46
IOninja grrr 04:57
Why yes, GitHub. Please go down when I want to push my last commit for the day 04:58
IOninja m: Str.^lookup('say').wrap: -> | { say "yo, upgrade, bruh!"; callsame }; "foo".say 05:16
camelia yo, upgrade, bruh!
foo
IOninja For IO upgrade: can make a module that'll wrap affected routines. Include the module. Run your code. Find out if you need to upgrade. 05:17
s/IO upgrade/breaking upgrades/
IOninja though I think wrappage and precomp is busticated 05:18
IOninja drops to bed
moritz timotimo: re ssl, there's a script /root/letsencrypt/more-certs.sh that controls the creation of SSL certs 06:32
moritz timotimo: I've changed the script to also include gtk-dlls.p6c.org in the SSL cert 07:21
timotimo: but I don't know which domain you actually want the SSL cert for :-)
moritz m: say "ø\c[COMBINING TILDE]".ords 07:41
camelia (248 771)
moritz m: say "ø\c[COMBINING TILDE]".comb.map(&ord)
camelia (248)
moritz m: say "ø\c[COMBINING TILDE]" 07:42
camelia ø̃
moritz I'm running a design competition for a new cover design for my book: en.99designs.de/book-cover-design/...80/entries 10:09
I'd appreciate some feedback on which designs you like
the designer of the current logo is uncomfortable with my use of it 10:10
RabidGravy I like them all :) 10:17
moritz that's good to know, but has no selective force :-) 10:19
my wife leans towards #6, and I generally trust here with aesthetics more than myself
jast I find the typography weak in the entries by Chupavi and CsapoDesign 10:20
moritz #3, #6, #7 and #17 are my current favorites
(tbh my wife hasn't seen #17 yet, it's new)
moritz jast: good point 10:21
jast and all of them aren't kerned properly to my eyes 10:22
I do like the concept in #3 and #7, though
they'd be better without the shutterstock watermarks, of course ;)
moritz that'll go away when I decide for one, and pay :-) 10:23
and there's an iteration process, so I can ask for things like a more interesting font
jast personally I dislike the use of lucida calligraphy in #17 (and many others by that designers), it's just so overused
jast in #6 the background composition doesn't work for me... the strange combination of gray and blue in the vignette effect, plus the nova-ish stuff, seems gimmicky to me and looks kinda muted when your focus is on the center 10:28
moritz jast: thanks for the feedback, very good points 10:39
zengargoyle i sorta like 3 and 17. wish there was was a butterfly coming out of a cocoon or like an origami folding pattern for a butterfly to get that 'coming to life' sort of feeling. 10:44
zengargoyle or that evolution progression caterpilar, cocoon, butterfly. 10:49
RabidGravy Okay this is weird github.com/perl6-community-modules...6/issues/7 - I thought it was broken by lexical loading but even if I move the require into the same method it seems unable to find the sub 11:47
but my mental faculties are somewhat degraded by a surfeit of alcohol yesterday so it could just be me 11:50
ZzZombo how the fox do I export multiple multies of the same name from a module? 12:04
RabidGravy should it just work? 12:06
ZzZombo can't is export subs in classes, can I?
Doesn't work.
unclechu hey guys, can you recommend me any good book about perl6? is there one exists? 12:17
MasterDuke huggable: books 12:18
huggable MasterDuke, "Perl 6 At A Glance" deeptext.media/perl6-at-a-glance/ (print only for now); "Perl 6 By Example": leanpub.com/perl6 (can order preview digital copies) ; "Think Perl 6: How to Think Like a Computer Scientist": shop.oreilly.com/product/0636920065883.do
MasterDuke unclechu: ^^^
unclechu thanks :) i was trying to search by `book` on faq page at perl6.org but found nothing 12:19
MasterDuke unclechu: good feedback, mind creating an issue here github.com/perl6/perl6.org ? 12:20
moritz perl6.org/resources/ has a list of books 12:21
Geth perl6.org: daaeaf8146 | (Moritz Lenz)++ | source/resources/index.html
Mention that might book can be bought right now

which was not obvious from the "in work" comment
12:22
MasterDuke moritz: you can also get a an early/preview release ebook of Laurent's book 12:25
moritz MasterDuke: of parts of the book, yes 12:25
masak is about to attempt some trolling 12:34
dear #perl6, is this a bug?
m: say is-palindrome "())(" given my &is-palindrome = { $^s eq $s.flip }
camelia True
masak o.O
inspired by twitter.com/belbeeno/status/834548166338895872 12:36
moritz masak: it's a bug, but in the parenthesis, not in Rakudo :-) 12:36
masak how can I correct my program? 12:39
I want it to work, not to... do a wrong thing 12:40
will Rakudo get better parentheses at some point?
I think the present generation of parentheses is faulty (see above)
moritz ask them Unicode folks! 12:42
moritz fetches the detroll spray 12:43
m: say 'möp'.NFC ~~ Uni 12:44
camelia True
moritz m: say 'möp'.NFC.Str 12:48
camelia möp
moritz m: say 'möp'.Uni
camelia No such method 'Uni' for invocant of type 'Str'
in block <unit> at <tmp> line 1
masak .oO( error: möp cannot go to Uni ) 12:56
masak .oO( ǝpoɔıun ) 13:00
SmokeMachine moritz: my favorite is the #19 but I'd remove the parentheses around the number 6 13:19
ZzZombo how could I easily change only one argument calling nextwith, passing others as is? 13:33
masak m: multi foo(Int, Str $s) { &nextwith.assuming("OH")() }; multi foo($x, $y) { say "$x $y" }; foo 42, "HAI" 13:35
camelia ( no output )
masak well. it was worth a shot. 13:36
this works:
m: multi foo(Int, Str $s) { nextwith("OH", $s) }; multi foo($x, $y) { say "$x $y" }; foo 42, "HAI"
camelia OH HAI
masak I don't know why the .assuming thing fails -- it may not be a bug 13:36
ufobat what is actually the difference between TWEAK and BUILD? or what cant be done in BUILD but in TWEAK? 13:37
masak "The TWEAK method allows you to check things or modify attributes after object construction" -- docs.perl6.org/language/objects 13:38
ZzZombo well, I have several named arguments and a few positional, have to alter just one in one case, don't like having to copy ALL of them.
masak ZzZombo: you might be able to put them in array/hash, modify them, and then spread them in
ufobat m: role A {has $.x is rw}; class B is A {submethod TWEAK() {$.x = 1;}}; B.new.x.say 13:39
camelia 5===SORRY!5=== Error while compiling <tmp>
Virtual method call $.x may not be used on partially constructed object (maybe you mean $!x for direct attribute access here?)
at <tmp>:1
------> 3w}; class B is A {submethod TWEAK() {$.x7⏏5 = 1;}…
ufobat masak, i think i dont understand 13:40
ufobat ah TWEAK has a self whereas BUILD hasn't but it is still just "partially constructed"? 13:42
ZzZombo Why does docs.perl6.org/type/Iterable not specify .flatmap? github.com/rakudo/rakudo/blob/320c...ice.pm#L54 seems to imply it. 13:43
Where does it come from then? 13:44
m: say Iterable.^methods
camelia (iterator item flat lazy-if lazy hyper race)
masak ufobat: not sure why you are using `is` for a role...? 13:45
ufobat: but yes, I think TWEAK still happens "during object construction" in some sense 13:46
not sure whether there's a good reason for that, mind
maybe it'd be totally kosher to refer to `self` at that point -- kind feels like it would
ufobat oh the "is" was a mistake 13:47
SmokeMachine m: class RectangleWithCachedArea {has ($.x1, $.x2, $.y1, $.y2); has $.area; submethod TWEAK() {$!area = abs( ($!x2 - $!x1) * ( $!y2 - $!y1) );}}; say RectangleWithCachedArea.new( x2 => 5, x1 => 1, y2 => 1, y1 => 0).area; 13:49
camelia 4
ufobat is there a way to set a Attribute of a Role at object construction? 13:50
i think i want to do something like this: role A {has $.x is rw}; class B does A {submethod TWEAK(*%param) {$.x = XML::XPath.new(|%param)}}; 13:51
masak jnthn: if I didn't necessarily care about performance, could I somehow declare a method on a subtype? :) 13:52
ZzZombo m: my %_=%(:kv,:delete);my %h=%(abc=>123,bcd=>*);say %h<*>:|%_ 14:03
camelia 5===SORRY!5=== Error while compiling <tmp>
Cannot use placeholder parameter %_ outside of a sub or block
at <tmp>:1
------> 3my %_7⏏5=%(:kv,:delete);my %h=%(abc=>123,bcd=>*)
ZzZombo m: my %a=%(:kv,:delete);my %h=%(abc=>123,bcd=>*);say %h<*>:|%a 14:04
camelia 5===SORRY!5=== Error while compiling <tmp>
Confused
at <tmp>:1
------> 3ete);my %h=%(abc=>123,bcd=>*);say %h<*>:7⏏5|%a
expecting any of:
colon pair
ZzZombo m: my %a=%(:kv(1),:delete(1));my %h=%(abc=>123,bcd=>*);say %h<*>:|%a
camelia 5===SORRY!5=== Error while compiling <tmp>
Confused
at <tmp>:1
------> 3(1));my %h=%(abc=>123,bcd=>*);say %h<*>:7⏏5|%a
expecting any of:
colon pair
ZzZombo m: my %a=%(kv=>1,delete=>1);my %h=%(abc=>123,bcd=>*);say %h<*>:|%a
camelia 5===SORRY!5=== Error while compiling <tmp>
Confused
at <tmp>:1
------> 3=>1);my %h=%(abc=>123,bcd=>*);say %h<*>:7⏏5|%a
expecting any of:
colon pair
ZzZombo wtf is colon pair
IOninja :a(42) 14:05
:meows
:42a, :a{ :42a }, :a[42], :a<42>, :!a, :$a, :$^a, :$!a, etc 14:06
ZzZombo m: my %a=%(:kv,:delete);my %h=%(abc=>123,bcd=>*);say %h<*>:%a 14:07
camelia Unexpected named argument 'a' passed
in block <unit> at <tmp> line 1
ZzZombo m: my %a=%(kv=>1,delete=>1);my %h=%(abc=>123,bcd=>*);say %h<*>:(|%a)
camelia 5===SORRY!5=== Error while compiling <tmp>
Obsolete use of | or \ with sigil on param %a
at <tmp>:1
------> 3;my %h=%(abc=>123,bcd=>*);say %h<*>:(|%a7⏏5)
expecting any of:
shape declaration
ZzZombo m: my %a=%(kv=>1,delete=>1);my %h=%(abc=>123,bcd=>*);say %h<*>:(%a)
camelia ===SORRY!===
This type (QAST::WVal) does not support positional operations
ZzZombo ughh 14:08
ZzZombo my %a=%(kv=>1,delete=>1);my %h=%(abc=>123,bcd=>*);say %h<*>:(|%a) <-- why no work :(( 14:08
jnthn ZzZombo: Just call postcircumfix:<{ }> directly 14:16
postcircumfix:<{ }>(%h, *, |%a)
ZzZombo wow
jnthn There's no flattening adverb syntax
ZzZombo neat
IOninja m: multi foo(:$s, |c) { nextwith :s<OH>, |c }; multi foo(:$s, :$a, :$x) { say "$s $a $x" }; foo :s<foo>, :a<bar>, :x<meows>
camelia foo bar meows
MasterDuke ZzZombo: also, i don't think you want <*>, but {*} instead 14:17
IOninja ZzZombo: in your earlier question... ^ you can use a capture to pass the args around
jnthn masak: Not easily. A subtype doesn't have a method table of its own, it just delegates dispatch to the refinee
IOninja m: multi foo(:$s, |c) { callwith :s<OH>, |c }; multi foo(:$s, :$a, :$x) { say "$s $a $x" }; foo :s<foo>, :a<bar>, :x<meows>
camelia foo bar meows
IOninja ummm, dafuq
jnthn masak: I suspect you could arrange to mix in to the meta-object, however, and override find_method
IOninja Oh
m: multi foo(:$s, |c) { callwith 42, :s<OH>, |c }; multi foo($, :$s, :$a, :$x) { say "$s $a $x" }; foo :s<foo>, :a<bar>, :x<meows> 14:18
camelia ( no output )
IOninja ZzZombo: well, it works; don't know why doesn't here....
MasterDuke anybody have an idea why an EVAL inside a test gives different results than outside? i was testing out some changes to Int.div, and getting some failures in t/spec/S32-num/rounders.t 14:20
but when i run the individual test from the command line it succeeds
m: say EVAL("truncate(-0.5)")
camelia 0
MasterDuke that's what i get, but it's 1 if i make the test file (or just run it directly) 14:21
MasterDuke these tests for example github.com/perl6/roast/blob/master...ders.t#L65 14:22
ZzZombo DAMN!!! 14:23
I am stuck 14:24
IOninja moritz: don't like any of them. They're all generic-looking. #6 looks nice as a thumbnail, if in want of a bit of typography work, but the real-life butterfly gives me the creeps when I view the large version :} 14:29
ZzZombo I have custom postcircumfix:<{ }> in my class, because the default refused to accept additional named argumens; but those custom subs couldn't be exported so outside uses didn't see them and called my AT-KEY directly, messing up the workaround I used and breaking horribly; then I tried to change them to our but that broke too because I have to do that via a new proto, but defining a new proto 14:29
breaks the operator for all other types as it's now enforced on them in the module...
araraloren How to convert a Int to enum ?
ZzZombo and of course I am NOT gonna define them for all other unrelated types.
IOninja araraloren: what are you trying to do? 14:31
araraloren According a Int value , return a enum 14:32
IOninja m: say SeekFromCurrent === SeekType.enums.antipairs.hash{1} 14:33
camelia False
IOninja m: say SeekFromCurrent == SeekType.enums.antipairs.hash{1}
camelia Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5SeekFromCurrent' (indicated by ⏏)
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
ZzZombo Why does the default postcircumfix:<{ }> has to complain on unknown named parameters anyway? Shouldn't it at least wait and see if a new one will handle them?
titsuki m: my enum A <sun mon>; A(0).say 14:37
camelia sun
titsuki araraloren: Is this answer your question ?
IOninja Oh. titsuki++
araraloren titsuki, yeah 14:38
thanks
araraloren m: enum A (:D, :C); A(1).say 14:39
camelia (Bool)
araraloren Why A(1) is Bool type? 14:40
perlawhirl hi perlers
IOninja araraloren: because :C is a Pair.new: 'C' => True
araraloren: because :C is a Pair.new: 'C', True
\o
perlawhirl moritz: i like #19, #7 is not bad 14:41
araraloren IOninja, oh, thanks
IOninja m: m: enum A (:D, :C); say A.enums
camelia Map.new((:C,:D))
perlawhirl do we have something like add_method for subs? say i have a class i want to define a bunch of multi's for (eg, math ops) 14:42
IOninja m: my enum A (sun => 42, mon => 72); A(1000).say
camelia (A)
perlawhirl the majorty will look like a version of this: -
multi infix:<+>( MyObj $a, Int $b ) { $a.values.map( * + $b ) }
can i code-gen the ops somehow, or just grin-and-bear-and-write it by hand
IOninja perlawhirl: CORE::<&infix:<eqv>>.add_dispatchee(multi sub infix:<eqv>(MyObj $l, MyObj $r --> Bool) { True; });
Ah, make them automatically 14:43
IOninja shrugs
Geth doc: 07ebaebaf2 | (Zoffix Znet)++ | doc/Language/typesystem.pod6
document how to get enums from normal values
14:46
ZzZombo So, guys, what to do in my case? 14:56
moritz perlawhirl: thanks 14:59
IOninja 🎺🎺🎺🎺 Advance Notice of Significant Changes: rakudo.org/2017/02/26/advance-notic...t-changes/ 15:00
moritz IOninja: would you like to contribute a design you like?
IOninja moritz: nah, it'll suck :) 15:02
moritz IOninja: :( I'd like to see your take on it 15:03
IOninja I'm not good at creating original content. 99% of my design job is stuffing as many products as I can into a page without it looking to crowded. And even typography for them is all just our standard stuff applied by a script I wrote... 15:06
Geth perl6.org: fc6aa947ed | (Zoffix Znet)++ | source/index.html
List IOwesomeness advance notice in news section
15:13
AlexDaniel ahahahahha
I love how it lists “Possibly breaking changes” as if it was something great 15:14
amazing artwork, IOninja++
IOninja heh 15:15
Well, none of them will be breaking changes as far as 6.c language is concerned
AlexDaniel March 18 looks a bit too soon though 15:16
IOninja += 2 # I love stuff getting better 15:17
travis-ci Doc build passed. Zoffix Znet 'document how to get enums from normal values' 15:24
travis-ci.org/perl6/doc/builds/205522979 github.com/perl6/doc/compare/07b1e...ebaebaf252
MasterDuke ZzZombo: might need to post a gist. i wasn't quite sure how your question related to the code you were trying with camelia earlier 15:26
masak jnthn: mixing into the meta-object and overriding find_method sounds like what I was after -- thank you! 15:38
jnthn: sounds concrete enough that it could potentially be weaponi^Wturned into a module 15:39
moritz what are the rules for which kinds of characters I can use in a Str -> Int conversion? 15:43
IOninja m: ':16<FFF>'.Int.say 15:44
camelia 4095
ufobat I would be happy if anyone would comment on this first draft: github.com/ufobat/p6-XML-Rabbit/bl...Rabbit.pm6 The idea is stolen from p5 xml::rabbit and some code was stolen from AttrX::Lazy. It's my first time going meta so.. uhm, yeah
IOninja moritz: same as val()
MasterDuke moritz: if it's a single character, any Nd, No, or Nl should work. if multiple, i.e., they're being treated as digits, only Nd
IOninja it makes a Numeric with val() and then coerces that to Int (there's a shortpath for stuff that's just numeric chars though) 15:45
moritz MasterDuke: thanks
moritz m: say ༳ 15:59
camelia -0.5
moritz m: say +"༳"
camelia Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5༳' (indicated by ⏏)
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
moritz is that intentional?
IOninja moritz: yes 16:00
m: say unival "༳"
camelia -0.5
BenGoldberg m: use NativeCall; my CArray[long] $tt .= new; $tt[0] = -2; sub time(CArray[long] $tt = $tt --> long) is native {*}; dd time($tt); dd $tt[0]; 16:01
camelia Calling time(NativeCall::Types::CArray[NativeCall::Types::long]) will never work with declared signature (NativeCall::Types::CArray[NativeCall::Types::long] $tt = { ... } --> NativeCall::Types::long)
in method CALL-ME at /home/camelia/rakudo-m-inst-2…
BenGoldberg m: use NativeCall; my CArray[long] $tt .= new; $tt[0] = -2; sub time(CArray[long] $t = $tt --> long) is native {*}; dd time($tt); dd $tt[0]; 16:01
camelia Calling time(NativeCall::Types::CArray[NativeCall::Types::long]) will never work with declared signature (NativeCall::Types::CArray[NativeCall::Types::long] $t = { ... } --> NativeCall::Types::long)
in method CALL-ME at /home/camelia/rakudo-m-inst-2/…
IOninja moritz: github.com/rakudo/rakudo/commit/e2...6d25995a90 16:02
araraloren How I represent a struct has a function ptr in Perl6 ? The CStruct can not have &callback attribute, must i have to use a CPointer ? Has anyone encounter this situation? 16:04
BenGoldberg Do you fill in the struct's contents in perl6, or is it filled in by the C library? 16:06
araraloren For now, I think will do that in Perl 6. 16:07
araraloren Take a look at github.com/tensorflow/tensorflow/b.../c/c_api.h line 163 ~ 178. 16:08
BenGoldberg If it's filled in by the C library, then you can simply write 'has Pointer $thecallback', and then later: my $callable = nativecast( $struct.thecallback, :(blah blah blah) ); $callable.(arguments);
araraloren BenGoldberg, It's not clear yet, I don't know much about this tensorflow library .. 16:09
You know, I just try to make a wrap for it. 16:10
BenGoldberg It looks like the tensorflow library is asking you how you want to free up data that you've allocated and passed to it.
araraloren Hm, seem like you are right. 16:11
BenGoldberg I think you're going to have to write some C code in order to make it work.
araraloren You mean export some interface base on it ? 16:12
BenGoldberg I think you first need to ask yourself, how would you use the library if you weren't doing this in perl6. 16:12
araraloren Hm, I have got to think it over . 16:13
BenGoldberg, thanks
Geth doc/WildYorkies-patch-3: a4fb28da9e | Cale++ | doc/Type/Signature.pod6
reorganize "constraining return types"
16:22
doc: WildYorkies++ created pull request #1220:
reorganize "constraining return types"
BenGoldberg m: my $i = Int; my $s = Str; method ($i:D $self: |args --> $s) { ... }; 16:25
camelia 5===SORRY!5=== Error while compiling <tmp>
Invalid typename 'D' in parameter declaration.
at <tmp>:1
------> 3my $i = Int; my $s = Str; method ($i:D7⏏5 $self: |args --> $s) { ... };
BenGoldberg m: my $x = method (Any:D:) { self }; dd 42.&$x(); 16:28
camelia 42
BenGoldberg m: my $x = method (:D:) { self }; dd 42.&$x();
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3my $x = method (:7⏏5D:) { self }; dd 42.&$x();
travis-ci Doc build passed. Cale 'reorganize "constraining return types"' 16:54
travis-ci.org/perl6/doc/builds/205541540 github.com/perl6/doc/commit/a4fb28da9ecf
AlexDaniel hehe, so according to Linus, git will *eventually* switch from SHA1. Makes me wonder why everyone started to move now, like if SHA1 problem was unknown before. 17:51
timotimo people tend to need a swift kick in the butt for those kinds of thing 17:52
just the other day i saw md5 be used in a program that was written last year
AlexDaniel and also, all of sudden, we see patches to help mitigate the issue, even though there was no issue!
timotimo it's totally legit to apply a patch that isn't technologically necessary, but that helps shut up people who would otherwise spam your mailing lists with dozens or hundreds of mails per day 17:55
AlexDaniel that's not the case, I think 17:56
plus.google.com/+LinusTorvalds/pos...tp2gYWQugL
Especially this: “it's already sufficient if the hosting place runs the checks every once in a while” 17:58
so either run the check yourself, or rely on github to run the checks for you… Awesome solution
timotimo mhm 17:59
tbrowder 'Lo #perl6 18:06
IOninja \o 18:07
AlexDaniel Zo 18:09
DrForr Nize ztation. 18:10
tbrowder I've been writing a sub to report on apache status using run to execute the system ps command. I may have an outdated rakudo, but neither run nor shell are capturing out with either the :err or :out arcs. (of course I may be doing something stupid.) I finally succeeded by using shell to redirect output to a file and then slurped and grepped the file. I'm on 18:12
the road and can't test, but anyone have any ideas?
IOninja:hi!
IOninja tbrowder: run(:out, "cal").out.slurp-rest.say captures output just fine on my box 18:15
tbrowder IOninja: thanks, at least that gives me a data point. Can you try it with "ps -C http o cmd=" 18:40
IOninja that commands gives me no output when run in the shell
tbrowder On some box running http?
IOninja no idea what http is 18:41
tbrowder It won't unless you're running httpd
IOninja I'm not. I'm running apache
zoffix@leliana:~$ perl6 -e 'run(:out, <ps -C apache2 o cmd=>).out.slurp-rest.say' 18:42
mst I have a feeling that on RHELL the process is called httpd ?
IOninja /usr/sbin/apache2 -k start
tbrowder httpd is the default apache daemon, it will be apache on a Debian package install according to the apache user list 18:42
mst I think it's apache on fbsd too 18:43
IOninja tbrowder: I suspect you're passing it all as one string instead of proper 'command', @args format
kinda sucks it silently succeeds 18:44
IOninja adds to the list
AlexDaniel this works for me: run(:out, ‘ps’, ‘-C’, ‘bash’, ‘o’, ‘cmd=’).out.slurp-rest.say
tbrowder The thing is I show results on the cli but not with shell or run. When I get home I'll update rakudo and check again.
AlexDaniel IOninja: interesting… exitcode seems to be 0 if you use :out 18:47
and -1 if you're not trying to catch stdout
-1 is more or less OK because it at least blows up in sink context 18:48
BenGoldberg m: say CALLER.<$?FILE>;
camelia (Any)
lucasb a line from Proc.pm: has $.exitcode = -1; # distinguish uninitialized from 0 status 18:51
BenGoldberg is wondering if there's any way to get info about the stack, a la perl5's caller.
IOninja BenGoldberg: callframe
BenGoldberg Thanks
lucasb doesn't know what's the practical difference between Proc.status and Proc.exitcode 18:52
IOninja m: sub foo { bar }; sub bar { say "You called me from {callframe(2).code.name}" }; foo
camelia You called me from foo
Geth marketing: 6a9bedcd2a | (Zoffix Znet)++ | 2 files
Rename file to better indicate color scheme
19:08
Zoffix \o 19:14
yoleaux 23 Feb 2017 13:07Z <Ven> Zoffix: twitter.com/zoffix/status/834074966274482177 why `(my \n = $++)` vs `(state $n)++`?
moritz m: say "ø".uniprop: $_ for <Numeric Alphabetic>; 19:15
camelia ALetter
True
timotimo zoffix? who the fuck is zoffix?
moritz is that by design?
Zoffix Some guy
moritz I find it a bit weird that one of those returns a boolean, and asking if it's Numeric returns "ALetter" 19:16
AlexDaniel m: say "ø".uniprop-bool: $_ for <Numeric Alphabetic>; 19:16
camelia True
True
AlexDaniel better? xD 19:17
moritz not really
AlexDaniel xD
AlexDaniel casts samcv
moritz I don't consider ø to be numeric
samcv hey AlexDaniel
AlexDaniel samcv: hey. Unicode question ↑ :)
moritz wow, a successful summon with a short round-trip time! :-)
timotimo huh, i kind of missed the whole animation that usually plays for a summon 19:18
moritz samcv: starts here: irclog.perlgeek.de/perl6/2017-02-26#i_14169361
AlexDaniel this doesn't look right, by the way 19:19
samcv moritz, Numeric basically means Numeric_Type
it's an alias name
AlexDaniel but shouldn't it be None?
samcv but uh. i guess i can see how that might be weird
AlexDaniel isn't it Word_Break that should be ALetter?
moritz is there a list of Unicode properties we support?
samcv oh you think the value is incorrect?
AlexDaniel bisect: old=HEAD~300 say "ø".uniprop: $_ for <Numeric Alphabetic>;
bisectable6 AlexDaniel, Bisecting by output (old=HEAD~300 new=dd4dfb1) because on both starting points the exit code is 0
AlexDaniel commit: HEAD~300 say "ø".uniprop: $_ for <Numeric Alphabetic>;
committable6 AlexDaniel, ¦«HEAD~300»: None␤True
bisectable6 AlexDaniel, bisect log: gist.github.com/3a28f10a707485220b...4c1b36e3e9
AlexDaniel, (2017-01-25) github.com/rakudo/rakudo/commit/3a...ab2489ece2
AlexDaniel commit: 3a774066^,3a774066 say "ø".uniprop: $_ for <Numeric Alphabetic>; 19:20
committable6 AlexDaniel, ¦«3a774066^»: None␤True␤¦«3a77406»: Lower␤True
samcv "ø".uniprop('Numeric').say
m "ø".uniprop('Numeric').say
AlexDaniel commit: 3a774066^,3a774066 say "ø".uniprop: $_ for <Numeric_Type Alphabetic>;
committable6 AlexDaniel, ¦«3a774066^,3a77406»: None␤True
samcv m: "ø".uniprop('Numeric').say
camelia ALetter
samcv m: "ø".uniprop('Numeric_Type').say
camelia None
samcv hm
AlexDaniel m: "ø".uniprop('Word_Break').say
camelia ALetter
AlexDaniel hm
samcv m: "a".uniprop('Numeric').say
camelia ALetter
samcv interesting 19:21
samcv let me see what 'Numeric' is resolving to 19:21
sec
AlexDaniel but Numeric_Type is broken too
m: "a".uniprop('Numeric_Type').say
camelia None
AlexDaniel ah
not
so it's just the alias
moritz m: say 'ø'.uniprop('Numeric_Type') 19:22
camelia None
samcv let me check some stuff
moritz samcv++
AlexDaniel moritz: so yes, while samcv is fixing it, you can use Numeric_Type
samcv would do uniprop-bool('Numeric_Type') btw 19:22
you will get true or false if it's numeric or not 19:23
instead of strings
Numeric is not a property name or name alias 19:24
so let me see what it actually resolves to
AlexDaniel whispers “Word_Break” 19:25
samcv yeah it is word break. but i wanted to double check
AlexDaniel how does it happen, by the way?
samcv uhm
because i hate the script that generates the unicode database 19:26
AlexDaniel some misalignment somewhere?
samcv and it does a lot of silly things like intermingling of the property values and property names at point
i bet there's a Word_Break=Numeric
90% sure
just like how doing <:space> actually checks the line feed property. which has the value of space 19:27
instead of checking the space property
moritz m: say 'a'.uniprop-bool('ASCII_Hex_Digit') 19:31
camelia True
moritz what's the difference between unicmp and coll? 19:35
samcv unicmp just does default UCA but coll uses $*COLLATION variable 19:36
so unless you change $*COLLATION they act the same
moritz ok, thanks
m: say $*COLLATION
camelia collation-level => 15, Country => International, Language => None, primary => True, secondary => True, tertiary => True, quaternary => True
samcv did you see my part in docs.perl6.org/language/experimental
moritz samcv: no, did not. Thanks for the pointer! 19:37
samcv yeah read it, gives you a good rundown :)
moritz I can now stop asking obnoxious questions :-)
AlexDaniel wonders why we still have this page
samcv experimental page?
AlexDaniel yea, I thought that idea was to move it to rakudo wiki
samcv oh
dunno if i like that either 19:38
dunno. i've never used rakudo wiki
but i mean these are experimental perl 6 features yes?
moritz likes the page
AlexDaniel or maybe not: github.com/perl6/doc/issues/893
moritz man, unicode.org doesn't offer https. Seems very old-style. 19:45
AlexDaniel yup 19:46
but according to the latest stats I think only half of all websites are using https 19:47
moritz but rising steadily 19:54
samcv: how much country-specific collation is implemented? 19:56
samcv 0 :)
moritz m: use experimental :collation; $*COLLATION.set(:Country<Norway>); say <a å z>.collate
camelia (a å z)
moritz samcv: ah, that explains it
samcv 0 language specific either
moritz I would have expected that to say (a z å) if it were implemented
samcv: would you maybe want to write a guest chapter on Unicode for the "Perl 6 by Example" book? 19:57
samcv yeah i may be able to do that 19:58
moritz I feel I can't do the topic justice
\o/ that would be great
samcv okay. i need a preview of your book first though
so i can know how to match similar style :)
moritz samcv: if you /msg me a ssh pubkey, I can give you access to my repo (not on github) 19:59
samcv: or should I use github.com/samcv.keys ?
AlexDaniel m: role Foo { has $one }; ‘blah’ does Foo(42) 20:01
camelia Can only supply an initialization value for a role if it has a single public attribute, but this is not the case for 'Foo'
in block <unit> at <tmp> line 1
AlexDaniel what am I missing? 20:02
moritz it needs to be public, I think 20:02
m: role Foo { has $.one }; ‘blah’ does Foo(42
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in argument list; couldn't find final ')'
at <tmp>:1
------> 3le Foo { has $.one }; ‘blah’ does Foo(427⏏5<EOL>
AlexDaniel $.one
okay
moritz m: role Foo { has $.one }; ‘blah’ does Foo(42)
camelia ( no output )
AlexDaniel ok, next question 20:03
moritz 'cause private attributes can't be initialized from the outside
(ah, even says "public attribute" in the error message)
samcv moritz, yeah use the key there
AlexDaniel m: role Foo { has $.one; has $.two }; ‘blah’ does Foo(:one(42), :two(69))
camelia Cannot invoke this object (REPR: Uninstantiable; Foo)
in block <unit> at <tmp> line 1
AlexDaniel m: role Foo { has $.one; has $.two }; ‘blah’ does Foo(42, 69)
camelia Cannot invoke this object (REPR: Uninstantiable; Foo)
in block <unit> at <tmp> line 1
moritz m: role Foo { has $.one; has $.two }; ‘blah’ does Foo(one => 42, two => 69) 20:04
camelia Cannot invoke this object (REPR: Uninstantiable; Foo)
in block <unit> at <tmp> line 1
AlexDaniel so what if I want to have more than one?
moritz m: role Foo { has $.one; has $.two }; ‘blah’ does Foo.new(one => 42, two => 69)
camelia Cannot mix in non-composable type Foo into object of type Str
in block <unit> at <tmp> line 1
moritz AlexDaniel: oh man, there's some longer-winded syntax that Foo(42) is a shortcut for, I think, but I can't remember what it is 20:04
samcv: please try 'git clone [email@hidden.address] 20:06
samcv hmm did not work 20:07
have not tried this for git before but for ssh i connect to AlexDaniel's server using the same key though through ssh
samcv yeah same key. so it should work same with git right? since it uses ssh 20:09
AlexDaniel m: role Foo { method one { ‘hello’ } }; class Blah { also does Foo }; say Blah.new.one 20:10
camelia hello
AlexDaniel github.com/perl6/doc/issues/1221 20:12
tbrowder IOninja: I get the same nil out with run AND shell. But if I direct shell to a file, the output is captured fine. 20:13
Zoffix AlexDaniel: docs.perl6.org/language/classtut#i...rator-also
AlexDaniel: "also declarator" in search results 20:14
AlexDaniel dammit
yes, now I see it
Zoffix tbrowder: what's the exact code you're running?
tbrowder The cmd is "ps -C httpd o cmd=" 20:15
Zoffix tbrowder: no, the Perl 6 code you're running
tbrowder my $p = shell $cmd, :out; # where $cmd is the ps cmd I just showed. 20:17
say $p.out.slurp-rest; 20:18
Of course there will be no output if httpd is not running
Zoffix tbrowder: does $p.sink throw?
and does `ps -C httpd o cmd=` actually produce output when you run it in the shell instead of Perl 6? 20:19
geekosaur exit 1 here 20:21
(and no output)
tbrowder Hm, can't say...no computer avail now. Can check later. I will do some thorough checking when I get home. Anything else to check like sink pleas suggest. As I said, I'll also make sure I'm using latest rakudo on nom branch.
geekosaur and I think the exit 1 means it'll throw?
Zoffix yes 20:22
tbrowder Yes, at the spell cli I get good output.
Zoffix tbrowder: add `dd $cmd;` before the call and check if $p.sink throws
moritz samcv: please try again, I had a trailing newline in your key file that confused gitolite
samcv very good
worked perfect 20:23
moritz \o/
tbrowder Zoffix: (welcome back) WILCO
samcv will take a look at it later today
moritz samcv: thanks
Zoffix tbrowder: also note that `run $cmd` is wrong in this case. You need to give it as a list. `run $cmd.words` should do the trick here 20:29
BenGoldberg m: Int.foo;
camelia No such method 'foo' for invocant of type 'Int'
in block <unit> at <tmp> line 1
BenGoldberg m: say try Int.foo;
camelia Nil
AlexDaniel m: Int.?foo;
BenGoldberg wonders where the failure/exception went.
camelia ( no output )
Zoffix m: say try Int.foo; say $!.^name 20:30
camelia Nil
X::Method::NotFound
AlexDaniel m: say try { Int.foo; CATCH { default { say ‘it's right here, no?’ } } };
camelia it's right here, no?
Nil
AlexDaniel m: say try { Int.foo; CATCH { default { .say } } };
camelia No such method 'foo' for invocant of type 'Int'
in block <unit> at <tmp> line 1

Nil
BenGoldberg m: say X::Method::NotFound.new; 20:31
camelia Use of uninitialized value of type Any in string context.
Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.
in block <unit> at <tmp> line 1
Use of uninitialized value of type Any in string context.
Metho…
BenGoldberg m: my $x = X::Method::NotFound.new; 20:32
camelia ( no output )
BenGoldberg m: my $x = X::Method::NotFound.new; dd $x
camelia X::Method::NotFound $x = X::Method::NotFound.new(invocant => Mu, method => Any, typename => Any, private => Bool::False)
tbrowder question ref proc.run: in the docs it shows signature starting with: "*@args ($, *@)" but i can't finf 20:49
Zoffix m: &run».signature.say
camelia ((| is raw))
Zoffix m: Proc.^lookup("spawn")».signature.say
camelia Cannot resolve caller HYPER(Block, Mu); none of these signatures match:
(&op, \left, \right, :$dwim-left, :$dwim-right)
(&op, Associative:D \left, Associative:D \right, :$dwim-left, :$dwim-right)
(&op, Associative:D \left, \right, :$dwi…
tbrowder ...find a good description in sig docs of what that exactly means. anyone?
Zoffix heh
tbrowder: slurp all remaining positionals into @args; leave first element as is, stuff the rest into second element as an array 20:51
m: sub (*@args ($, @*)) {dd @ags}(<a b c d e f g>)
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed parameter
at <tmp>:1
------> 3sub (*@args ($, @7⏏5*)) {dd @ags}(<a b c d e f g>)
expecting any of:
constraint
Zoffix m: sub (*@args ($, *@)) {dd @ags}(<a b c d e f g>)
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '@ags' is not declared. Did you mean '@args'?
at <tmp>:1
------> 3sub (*@args ($, *@)) {dd 7⏏5@ags}(<a b c d e f g>)
Zoffix wat..
oh
hobbs typo, ags vs args
Zoffix reading helps :)
m: sub (*@args ($, *@)) {dd @args}(<a b c d e f g>) 20:52
camelia ["a", "b", "c", "d", "e", "f", "g"]
Zoffix Oh, I'm a good liar :P
tbrowder: never mind, what I said is wrong.
m: sub (*@args ($x, *@y)) {dd [$x, @y] }(42, <a b c d e f g>) 20:53
camelia [42, ["a", "b", "c", "d", "e", "f", "g"]]
Zoffix thought what I described is what I would've expected it to do :/
tbrowder but at least you showed some good test methodology!
tbrowder on the road again...bye for now 20:57
BenGoldberg s: ((use NativeCall), &nativecast)[1], \() 21:23
SourceBaby BenGoldberg, Something's wrong: ␤ERR: Could not find candidate that can do \()␤ in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 37␤ in block <unit> at -e line 6␤␤
BenGoldberg s: ((use NativeCall), &nativecast)[1], \(Pointer, Signature)
SourceBaby BenGoldberg, Sauce is at github.com/rakudo/rakudo/blob/8e25...2199756E03 (NativeCall)#L410
BenGoldberg Zoffix, Since SourceBaby is your baby, any chance of fixing that? 21:24
Zoffix Don't think so. 21:25
buggable: eco hackery
buggable Zoffix, Nothing found
Zoffix buggable: eco sourcery
buggable Zoffix, CoreHackers::Sourcery 'Helper for showing actual source code locations of core subs and methods': github.com/zoffixznet/perl6-CoreHa...s-Sourcery
Zoffix It uses ^ that module to do it's job if you want to give it a go. 21:26
by "don't think so" I mean I have neither time nor desire to fix that, not that there's no way. 21:27
BenGoldberg s: ((use Test), &test::output)[1], \()
SourceBaby BenGoldberg, Something's wrong: ␤ERR: Cannot resolve caller sourcery(Any, Capture); none of these signatures match:␤ ($thing, Str:D $method, Capture $c)␤ ($thing, Str:D $method)␤ (&code)␤ (&code, Capture $c)␤ in block <unit> at -e line 6␤␤
BenGoldberg m: say ((use Test), &test::output)[1] 21:28
camelia (Any)
BenGoldberg m: say ((use Test), &plan)[1]
camelia sub plan (;; Mu | is raw) { #`(Sub|61729752) ... }
BenGoldberg s: ((use Test), &plan)[1], \()
SourceBaby BenGoldberg, Something's wrong: ␤ERR: Could not find candidate that can do \()␤ in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 37␤ in block <unit> at -e line 6␤␤
BenGoldberg s: ((use Test), &plan)[1], \(Any)
SourceBaby BenGoldberg, Sauce is at github.com/rakudo/rakudo/blob/8e25...D06868219E (Test)#L62
BenGoldberg Looks like anything which ought to point to github.com/rakudo/rakudo/blob/nom/lib/ comes out like that. 21:29
TEttinger woah, Zoffix is back. it's almost as if they never left... 22:33
Zoffix :) 22:34
El_Che I liked brokenchicken 22:36
AlexDaniel babydrop was nice also 22:38
Zoffix 's favourite was `viki` 22:39
AlexDaniel m: say ‘AlexDaniel’.comb.pick(*).join 22:40
camelia elaADnlxie
elaADnlxie … how original 22:40
elaADnlxie m: my %h1 = :4foo :8bar; say %h1 22:43
camelia {foo => 4}
elaADnlxie dammit, this again
m: my %h1 = :4foo, :8bar; say %h1
camelia {bar => 8, foo => 4}
elaADnlxie m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; my %h1 ,= %h2; say %h1 22:44
camelia Potential difficulties:
Redeclaration of symbol '%h1'
at <tmp>:1
------> 034foo, :8bar; my %h2 = :15x, :16y; my %h17⏏5 ,= %h2; say %h1
{x => 15, y => 16}
elaADnlxie m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; %h1 ,= %h2; say %h1
camelia {x => 15, y => 16}
elaADnlxie w… what 22:45
m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; %h1 = %h1, %h2; say %h1
camelia {x => 15, y => 16}
elaADnlxie m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; my %all = %h1, %h2; say %all
camelia {bar => 8, foo => 4, x => 15, y => 16}
Zoffix m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; %h1 = |%h2, |%h1; say %h1 22:46
camelia {bar => 8, foo => 4, x => 15, y => 16}
elaADnlxie Zoffix: that's ok, yes, but why does it work with 「my %all = %h1, %h2」 ? 22:47
Zoffix Dunno
elaADnlxie m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; my %all; %all = %h1, %h2; say %all 22:49
camelia {bar => 8, foo => 4, x => 15, y => 16}
elaADnlxie in fact, this works
Zoffix Ahhh 22:51
The container thing.
Um, I guess
Nevermidn
elaADnlxie m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; %h1 = %(%h1, %h2); say %h1 22:54
camelia {bar => 8, foo => 4, x => 15, y => 16}
elaADnlxie m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; %h1 = (%h1, %h2); say %h1
camelia {x => 15, y => 16}
elaADnlxie m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; %h2 = (%h1, %h2); say %h2 22:54
camelia {bar => 8, foo => 4} 22:55
Zoffix Perl 6 IO TPF Grant: Monthly Report (February, 2017): blogs.perl.org/users/zoffix_znet/20...-2017.html 23:03
BenGoldberg m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; dd %h1; dd %h2; 23:04
camelia Hash %h1 = {:bar(8), :foo(4)}
Hash %h2 = {:x(15), :y(16)}
BenGoldberg m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; dd %h1; dd %h2; %h1 = (%h1, %h2); dd %h1;
camelia Hash %h1 = {:bar(8), :foo(4)}
Hash %h2 = {:x(15), :y(16)}
Hash %h1 = {:x(15), :y(16)}
BenGoldberg m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; dd %h1; dd %h2; %h1.push: %h2; dd %h1; 23:05
camelia Hash %h1 = {:bar(8), :foo(4)}
Hash %h2 = {:x(15), :y(16)}
Hash %h1 = {:bar(8), :foo(4), :x(15), :y(16)}
BenGoldberg m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; dd %h1; dd %h2; %h1 = :quux(42); dd %h1;
camelia Hash %h1 = {:bar(8), :foo(4)}
Hash %h2 = {:x(15), :y(16)}
Hash %h1 = {:quux(42)}
BenGoldberg m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; dd %h1; dd %h2; %h1 = :quux(42), %h1; dd %h1;
camelia Hash %h1 = {:bar(8), :foo(4)}
Hash %h2 = {:x(15), :y(16)}
Hash %h1 = {:quux(42)}
BenGoldberg m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; dd %h1; dd %h2; %h1 = :quux(42), |%h1; dd %h1;
camelia Hash %h1 = {:bar(8), :foo(4)}
Hash %h2 = {:x(15), :y(16)}
Hash %h1 = {:bar(8), :foo(4), :quux(42)}
BenGoldberg m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; dd %h1; dd %h2; %h1 = |%h1, |%h2; dd %h1; 23:06
camelia Hash %h1 = {:bar(8), :foo(4)}
Hash %h2 = {:x(15), :y(16)}
Hash %h1 = {:bar(8), :foo(4), :x(15), :y(16)}
BenGoldberg elaADnlxie, In perl5, if you put an array or a hash in list context, it would always without exception flatten. 23:08
In perl6, if you have a list containing one hash or one array, that hash or array will also flatten.
When you've got two or more items in a list, their itemness is preserved.
elaADnlxie BenGoldberg: not really
let me demonstrate
m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; my %all = %h1, %h2; say %all 23:09
camelia {bar => 8, foo => 4, x => 15, y => 16}
BenGoldberg Or rather, their itemness is preserved unless you explicitly ask for flatting, using |
elaADnlxie m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; my %all = %h1, %h2; dd %all
camelia Hash %all = {:bar(8), :foo(4), :x(15), :y(16)}
elaADnlxie BenGoldberg: so why does this work then? ↑
BenGoldberg m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; my @all = %h1, %h2; dd @all
camelia Array @all = [{:bar(8), :foo(4)}, {:x(15), :y(16)}]
BenGoldberg m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; my @all = %h1, %h2; dd @all.Hash 23:10
camelia Hash % = {"bar\t8\nfoo\t4" => ${:x(15), :y(16)}}
BenGoldberg I think there's a bug.
Notice what happened when I assigned %h1 and %h2 to an array; the hashes did not flatten.
elaADnlxie sure
BenGoldberg m: my %h1 = :4foo, :8bar; my %h2 = :15x, :16y; my @all = %h1, %h2; my %all = @all; dd %all; 23:11
camelia Hash %all = {"bar\t8\nfoo\t4" => ${:x(15), :y(16)}}
elaADnlxie yea, if it worked like this ↑, then I'd accept it :)
BenGoldberg The array behavior is what is supposed to happen; that's what's documented.
elaADnlxie but current behavior is WAT, unless somebody knows a good reason why it should be this way… 23:11
arrays are fine, my question is about hashes :) 23:12
it feels liket here's some self-referential issue again
BenGoldberg The obvious fact that assigning two hashes to a third hash, without explicity |'s, is really really wierd.
elaADnlxie m: my %h1 = <1 a 2 b>; my %h2 = <3 c 4 d>; my %h3 = <5 e 6 f>; %h1 = %(%h1, %h2, %h3); say %h1 23:13
camelia {1 => a, 2 => b, 3 => c, 4 => d, 5 => e, 6 => f}
elaADnlxie m: my %h1 = <1 a 2 b>; my %h2 = <3 c 4 d>; my %h3 = <5 e 6 f>; %h1 = (%h1, %h2, %h3); say %h1
camelia {3 => c, 4 => d, 5 => e, 6 => f}
BenGoldberg huggable, rakudobug
huggable BenGoldberg, Report bugs by emailing to [email@hidden.address]
elaADnlxie so it's all *except* self
ok I'll rakudobug this 23:14
Zoffix m: my %h1 = <1 a 2 b>; my %h2 = <3 c 4 d>; my %h3 = <5 e 6 f>; %h1 = 42 => [(%h1, %h2, %h3)]; say %h1 23:15
camelia (\Hash_36625712 = {42 => [Hash_36625712 {3 => c, 4 => d} {5 => e, 6 => f}]})
Zoffix m: my %h1 = <1 a 2 b>; my %h2 = <3 c 4 d>; my %h3 = <5 e 6 f>; %h1 = 42 => [(%h1, %h2, %h3),]; say %h1
camelia (\Hash_59075504 = {42 => [(Hash_59075504 {3 => c, 4 => d} {5 => e, 6 => f})]})
Zoffix m: my %h1 = :42a; my %h2 = :72b; %h1 = %h1, %h2; say %h1 23:17
camelia {b => 72}
Zoffix m: my %h1 = :42a; my %h2 = :72b; %h1 = foo => %h1, %h2; say %h1
camelia (\Hash_61016848 = {b => 72, foo => Hash_61016848})