Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2016-12-01

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:15 [Coke] If so, why do we even have that option? :)
00:15 skids joined #perl6
00:15 timotimo because if you don't have inline::python, we still want you to have syntax highlighting
00:16 timotimo oh, maybe the doc build would be a good opportunity for nine to optimize inline::python
00:16 [Coke] we already require a few modules. doesn't seem like a big deal to require one more.
00:16 timotimo though i fear it's probably only a very few calls that are drowned out by perl6 work time
00:18 unicodable6 joined #perl6
00:20 [Coke] yay, it finished.
00:24 timotimo yay
00:25 canopus joined #perl6
00:28 [Coke] ... and search didn't seem to pick up on my changes. hurm.
00:28 timotimo is that perhaps a separate step?
00:30 [Coke] hurm. Inline::Python install fails for me, cannot find pyhelper.c:1:10: fatal error: 'Python.h' file not found
00:31 timotimo ah
00:31 timotimo install python-dev or python-devel
00:34 [Coke] nosuch package on macports. swear i had this working at somepoint. (there are many py-*-devel packages. no idea which one is right)
00:34 timotimo does macports have something like "apt-file" or "dnf provides"?
00:35 eyck joined #perl6
00:36 geekosaur port provides
00:36 [Coke] guessing, "which port provides this executable I'm looking for"?
00:37 geekosaur but only for installed ports; variants make the problem of uninstalled ports rather difficult
00:37 TimToady .oO(Duke Nukem Forever provides?)
00:37 timotimo well, apt-file and dnf provides work based on file-per-package lists they download separately
00:37 geekosaur (debian and fedora ship prepopulated databases generated for every installable package. variants change what files a port can install, so the equivalent file is rather large)
01:00 BenGoldberg joined #perl6
01:01 aborazmeh joined #perl6
01:01 aborazmeh joined #perl6
01:15 Actualeyes joined #perl6
01:19 cibs joined #perl6
01:29 ZzZombo m: my \self = π; say self
01:29 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤'self' used where no object is available␤at <tmp>:1␤------> 3my \self = π; say 7⏏5self␤    expecting any of:␤        argument list␤        term␤»
01:29 ZzZombo m: my \sеlf = π; say sеlf
01:29 camelia rakudo-moar 843a6b: OUTPUT«3.14159265358979␤»
01:30 ZzZombo WTF?
01:33 zakharyas joined #perl6
01:35 MasterDuke m: say 'self'.uninames
01:35 camelia rakudo-moar 843a6b: OUTPUT«(LATIN SMALL LETTER S LATIN SMALL LETTER E LATIN SMALL LETTER L LATIN SMALL LETTER F)␤»
01:36 MasterDuke m: say 'sеlf'.uninames
01:36 camelia rakudo-moar 843a6b: OUTPUT«(LATIN SMALL LETTER S CYRILLIC SMALL LETTER IE LATIN SMALL LETTER L LATIN SMALL LETTER F)␤»
01:38 yoleaux AlexDaniel: go through clog and see if there are any other < > cases that are obviously wrong
01:38 AlexDaniel .in 1d go through clog and see if there are any other < > cases that are obviously wrong
01:38 yoleaux AlexDaniel: I'll remind you on 2 Dec 2016 01:38Z
01:38 AlexDaniel :P
01:40 AlexDaniel u: SPACE MODIFIER
01:40 unicodable6 AlexDaniel, Found nothing!
01:40 AlexDaniel :(
01:40 AlexDaniel u: MODIFIER
01:40 unicodable6 AlexDaniel, U+02B0 MODIFIER LETTER SMALL H [Lm] (ʰ)
01:40 unicodable6 AlexDaniel, U+02B1 MODIFIER LETTER SMALL H WITH HOOK [Lm] (ʱ)
01:40 unicodable6 AlexDaniel, U+02B2 MODIFIER LETTER SMALL J [Lm] (ʲ)
01:41 unicodable6 AlexDaniel, https://gist.github.com/9e9b​a0755e9aefa43cd8f506d4081ef2
01:41 AlexDaniel u: Lm space
01:41 unicodable6 AlexDaniel, Found nothing!
01:43 AlexDaniel u: Lm
01:43 unicodable6 AlexDaniel, U+02B0 MODIFIER LETTER SMALL H [Lm] (ʰ)
01:43 unicodable6 AlexDaniel, U+02B2 MODIFIER LETTER SMALL J [Lm] (ʲ)
01:43 unicodable6 AlexDaniel, U+02B1 MODIFIER LETTER SMALL H WITH HOOK [Lm] (ʱ)
01:43 unicodable6 AlexDaniel, https://gist.github.com/b5cd​8f0e7db5642cdb19d078c776247f
01:44 AlexDaniel m: my \ꘌ = 42; say ꘌ == ꘌ
01:44 camelia rakudo-moar 843a6b: OUTPUT«True␤»
01:45 AlexDaniel m: my \ꓼ = 42; say 5+ꓼ
01:45 camelia rakudo-moar 843a6b: OUTPUT«47␤»
01:46 ZzZombo m: my \хрясь=2;put ++хрясь
01:46 camelia rakudo-moar 843a6b: OUTPUT«Cannot resolve caller prefix:<++>(Int); the following candidates␤match the type but require mutable arguments:␤    (Mu:D $a is rw)␤    (Int:D $a is rw)␤␤The following do not match for other reasons:␤    (Bool $a is rw)␤    (Mu:U $a is rw)␤ …»
01:47 ZzZombo m: my \хрясь=2;put хрясь
01:47 camelia rakudo-moar 843a6b: OUTPUT«2␤»
01:49 AlexDaniel m: my \х=2; say х Xx х × х xx х
01:49 camelia rakudo-moar 843a6b: OUTPUT«(2222 2222)␤»
01:51 ZzZombo stop having fun :V
01:55 Actualeyes joined #perl6
01:58 * TimToady is suddenly rather glad he didn't make the  optional...
01:59 adu joined #perl6
02:05 pierre_ joined #perl6
02:05 obfusk joined #perl6
02:11 Vynce joined #perl6
02:17 thowe joined #perl6
02:25 thowe Hello.
02:26 kurahaupo__ joined #perl6
02:29 AlexDaniel 🙋
02:30 thowe hm, that must be something my font doesn't have.
02:31 AlexDaniel u: 🙋
02:31 unicodable6 AlexDaniel, U+1F64B HAPPY PERSON RAISING ONE HAND [So] (🙋)
02:31 thowe So...  Interesting.  WHat does one need on a Debian box to have all of these unicode characters?
02:32 AlexDaniel thowe: ttf-unifont package is a must
02:32 AlexDaniel but this one should be rendered by something else, actually
02:33 MasterDuke fonts-noto maybe
02:34 AlexDaniel yea, I have fonts-noto-mono installed
02:36 thowe OK, now I see you waving.  The next question is, how do you type these things?  have them someplace you can paste in?  Keyboard mapping?
02:36 thowe 🙋
02:41 AlexDaniel thowe: compose key
02:42 AlexDaniel I have a custom keyboard layout, so yes, I have added some commonly used characters there
02:46 AlexDaniel but most people use compose key for everything
02:46 thowe not even sure what "compose key" means
02:46 AlexDaniel well, dead keys too, but I don't think these ones can help with emojis
02:46 AlexDaniel thowe: google it :)
02:47 ilbot3 joined #perl6
02:47 Topic for #perl6 is now »ö« Welcome to Perl 6! | https://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:,  or /msg camelia p6: ... | irclog: http://irc.perl6.org or http://colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
02:49 Actualeyes joined #perl6
02:49 thowe problem is alt key wants to be menu shortcut in word processor...
02:53 thowe still, now I know how to type an ñ if there isn't a menu.
02:53 synopsebot6 joined #perl6
02:53 thowe Anyone know if Util is ever around?
02:58 TimToady this could easily be determined by searching the ir clogs
02:58 MasterDuke .seen Util
02:58 yoleaux I saw Util 9 Oct 2016 22:28Z in #perl6: <Util> p3rln00b: thanks!
02:59 thowe ah ".seen".  Hm.  Bummer.  I wanted to say "Hi">
03:08 AlexDaniel thowe: you make it sound like alt is the only key on your keyboard :)
03:08 AlexDaniel thowe: for example, you can use caps lock as a button for your compose key
03:09 thowe I think what I would want to do is probably map the Windows button.  I don't use it for anything else.
03:13 Actualeyes left #perl6
03:14 TimToady that's what I do
03:14 * AlexDaniel is using both Super and Hyper buttons all the time
03:18 AlexDaniel thowe: do you have Ctrl on caps lock or something?
03:21 thowe I haven't made any alterations
03:21 TimToady my keyboard doesn't even have caps lock, except occasionally by accident
03:21 ZzZombo joined #perl6
03:22 TimToady it has home/end where caps lock should be, if it wasn't where control was supposed to be instead of where it is... :)
03:22 Guest92221 joined #perl6
03:23 AlexDaniel TimToady: does not sound too bad
03:25 noganex joined #perl6
03:27 * thowe is excited for the Learning Perl6 book.
03:28 thowe If I can have a book at the office, I can make an argument for rewriting my invoice processor in Perl6.
03:30 AlexDaniel Changing caps lock to any other key is a win anyway
03:35 user9 joined #perl6
03:37 ZzZombo Can we get --ll-exception to print paths using OS-aware path separators?
03:45 ZzZombo why the hack:
03:46 ZzZombo m: https://gist.github.com/ZzZombo/​5caa51f9b238462d628a5b556920a0d8
03:46 camelia rakudo-moar 843a6b: OUTPUT«Perl6::Metamodel::ClassHOW.new␤No such method 'find_private_method' for invocant of type 'Perl6::Metamodel::PackageHOW'␤  in block  at <tmp> line 48␤  in method handler at <tmp> line 44␤  in submethod tweak at <tmp> line 15␤  in block <unit> at <…»
03:46 ZzZombo why does it look into Perl6::Metamodel::PackageHOW instead of Perl6::Metamodel::ClassHOW??
03:47 * TimToady would be more excited about the LP book if he knew it wouldn't be written with that barfaliciously pythonic bracket style
04:00 thowe not sure what this message means...  when doing ""Howdy World".^methods(:local).join(',')" I get a message "Control flow commands not allowed in toplevel".
04:01 thowe what does that mean?
04:02 thowe join is a control flow command?
04:04 ZzZombo m: "Howdy World".^methods(:local).join(',')
04:04 camelia rakudo-moar 843a6b: OUTPUT«Submethod object coerced to string (please use .gist or .perl to do that)␤  in block <unit> at <tmp> line 1␤Method object coerced to string (please use .gist or .perl to do that)␤  in block <unit> at <tmp> line 1␤Method object coerced to string (pl…»
04:04 ZzZombo m: dd "Howdy World".^methods(:local).join(',')
04:04 camelia rakudo-moar 843a6b: OUTPUT«Submethod object coerced to string (please use .gist or .perl to do that)␤  in block <unit> at <tmp> line 1␤Method object coerced to string (please use .gist or .perl to do that)␤  in block <unit> at <tmp> line 1␤Method object coerced to string (pl…»
04:05 ZzZombo m: dd "Howdy World".^methods(:local)
04:05 camelia rakudo-moar 843a6b: OUTPUT«(submethod BUILD (Str $: :$value = "", *%_ --> Nil) { #`(Submethod|46742088) ... }, method Int (Str:D $: *%_) { #`(Method|46742240) ... }, method Num (Str:D $: *%_) { #`(Method|46742392) ... }, method chomp (Str:D $: *%_) { #`(Method|46742544) ... }, metho…»
04:05 ZzZombo m: put "Howdy World".^methods(:local).join(',')
04:05 camelia rakudo-moar 843a6b: OUTPUT«Submethod object coerced to string (please use .gist or .perl to do that)␤  in block <unit> at <tmp> line 1␤Method object coerced to string (please use .gist or .perl to do that)␤  in block <unit> at <tmp> line 1␤Method object coerced to string (pl…»
04:06 ZzZombo I don't get your results.
04:06 thowe might be a REPL thing(?)
04:11 cdg joined #perl6
04:11 thowe hm.  I was just trying an example from https://docs.perl6.org/lang​uage/classtut#Introspection
04:12 thowe "say $o.^methods(:local).join(', ');"
04:13 ZzZombo I think it's a mistake then. You shouldn't stringify methods like that. It probably meant to concat their names only.
04:13 cdg joined #perl6
04:14 ZzZombo m: put ("Howdy World".^methods(:local)>>.name).join(',')
04:14 camelia rakudo-moar 843a6b: OUTPUT«BUILD,Int,Num,chomp,subst,pred,succ,or​ds,parse-base,samecase,samemark,samespace,wor​d-by-word,trim-leading,trim-trailing,trim,enc​ode,NFC,NFD,NFKC,NFKD,wordcase,trans,indent,c​odes,chars,uc,lc,tc,fc,tclc,flip,ord,WHY,WHIC​H,Bool,Str,Stringy,DUMP,ACCEPTS,chop,s…»
04:14 ZzZombo m: put ("Howdy World".^methods(:local)>>.name).join(', ')
04:14 camelia rakudo-moar 843a6b: OUTPUT«BUILD, Int, Num, chomp, subst, pred, succ, ords, parse-base, samecase, samemark, samespace, word-by-word, trim-leading, trim-trailing, trim, encode, NFC, NFD, NFKC, NFKD, wordcase, trans, indent, codes, chars, uc, lc, tc, fc, tclc, flip, ord, WHY, WHICH, B…»
04:14 ZzZombo thowe ^
04:15 thowe so, ^methods doesn't return a list of names, it actually returns "methods".  Method objects(?)
04:15 ZzZombo yes
04:16 thowe ah ha...  I come from a Ruby world once upon a time, so I wasn't quite ready for that.  That's next level.
04:17 thowe is >>. a special operator on Method?
04:17 ZzZombo well, to be pedantic, it returns a List of methods.
04:17 ZzZombo no
04:17 ZzZombo it is a generic operator called hyper operator
04:18 thowe looks like it might be iterating(?)
04:18 ZzZombo basically performs actions on all members of a list, and returns results in order
04:19 ZzZombo so here, I tell it to iterate over the result of ^methods() call, call .name on it and the results of all calls are then returned in another list.
04:20 ZzZombo s/on it/on each item/
04:20 thowe yeah, I got that.  Nifty.
04:20 thowe Kinda like .each in Ruby I guess.
04:21 thowe wow, there's a lot of hyper operators.
04:22 thowe I guess I know some of these already though.  I think the term "hyper operator" is just new to me.
04:23 thowe I'm also not reading the page right, so don't mind me...
04:24 pierre_ joined #perl6
04:25 thowe what makes something a "Hyper" operator?
04:26 thowe is it an operator on an operator?
04:27 ZzZombo yea, it applies another operator
04:27 thowe I probably shouldn't annoy the channel with stuff I should just be reading up on.  Sorry for the noise.
04:37 solarbunny joined #perl6
04:38 BenGoldberg . o O (A hyper operator is one which has ADHD)
04:40 MasterDuke ZzZombo: are you on windows?
04:40 Actualeyes joined #perl6
04:56 MasterDuke well, assuming you are, are all the paths in the output of --ll-exception non-windows? or just some?
04:58 ZzZombo Yes
04:58 ZzZombo they look like "C:\rakudo/share/perl6/run​time/CORE.setting.moarvm"
04:59 ZzZombo note the first separator is Windows-like, while the rest are not.
05:00 ZzZombo oh, user files properly use only '\'.
05:00 ZzZombo so it affects only internal files.
05:02 ZzZombo there is also no consistency in paths on the beginning of strings, I was talking earlier about paths in parentheses:
05:02 ZzZombo from src/Perl6/Compiler.nqp:27  (C:\rakudo\share\nqp\lib/Perl6​/Compiler.moarvm:command_eval)
05:02 ZzZombo from gen\moar\stage2\NQPHLL.nqp:1508  (C:\rakudo\share\nqp\lib/N​QPHLL.moarvm:command_line)
05:03 ZzZombo and there are instances of mixed separators as well.
05:05 MasterDuke some parts of those paths are kind of hard-coded, some are pulled from the filesystem
05:06 awwaiid joined #perl6
05:06 MasterDuke and a bunch of the code is from NQP, which i don't believe has as much OS-awareness as Perl 6 does
05:06 ZzZombo well sure we can decorate the paths but only in the output.
05:07 MasterDuke could you rakudobug it?
05:07 ZzZombo Yes.
05:08 MasterDuke cool. i'll try and look into it, but it would be good to have in RT in case it slips my mind
05:09 rburkholder joined #perl6
05:18 ZzZombo m: https://gist.github.com/ZzZombo/​5caa51f9b238462d628a5b556920a0d8
05:18 camelia rakudo-moar 843a6b: OUTPUT«Perl6::Metamodel::ClassHOW.new␤No such method 'find_private_method' for invocant of type 'Perl6::Metamodel::PackageHOW'␤  in block  at <tmp> line 48␤  in method handler at <tmp> line 44␤  in submethod tweak at <tmp> line 15␤  in block <unit> at <…»
05:19 ZzZombo why does it look into Perl6::Metamodel::PackageHOW instead of Perl6::Metamodel::ClassHOW??
05:23 ZzZombo joined #perl6
05:24 Guest67198 joined #perl6
05:25 pierre_ joined #perl6
05:26 seatek is this a bug or a feature?
05:26 seatek https://gist.github.com/adaptiveopti​cs/a4bad65ef7f5228e9e686d054dbd5dca
05:27 seatek i can't quite decide myself!
05:28 ugexe thats how once works
05:29 ZzZombo m: sub fragile{ once put 'You broke dis...'};fragile;fragile;
05:29 camelia rakudo-moar 843a6b: OUTPUT«You broke dis...␤»
05:29 seatek ok sounds good to me :) i'll doc it in the things to watch out for with once
05:29 ugexe "A block prefix with once will be executed exactly once, even if placed inside a loop or a recursive routine."
05:30 seatek different class isntances are supposed to have different scope though
05:31 seatek that's what makes it unexpected
05:31 ugexe it does not say once per instance
05:31 ugexe it works just like `state`
05:31 ugexe m: class foo { method bar { state $x = rand; say $x } }; foo.new.bar; foo.new.bar
05:31 camelia rakudo-moar 843a6b: OUTPUT«0.590090676209819␤0.590090676209819␤»
05:32 seatek actually, that just made me think of a good use for it
05:33 ugexe different scope doesnt matter if its only executed once
05:34 seatek clones?
05:34 seatek threads?
05:34 ZzZombo m: sub fragile{ once put 'You broke dis...'};fragile xx 2
05:34 ugexe what about them?
05:34 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤    xx used at line 1␤␤»
05:34 ZzZombo m: sub fragile{ once put 'You broke dis...'};fragile x 2
05:34 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤    x used at line 1␤␤»
05:36 pierre_ joined #perl6
05:38 ugexe m: class foo { method bar { { once say 42 } } }; foo.new.bar; foo.new.bar # you can do this if you really want to
05:38 camelia rakudo-moar 843a6b: OUTPUT«42␤42␤»
05:39 ugexe but then you lose what you wanted to begin with if you use the same instance more than once
05:39 seatek no i think it works great the way it is.
05:40 pierre_ joined #perl6
05:44 BenGoldberg m: BEGIN { my $once; sub fragile { $once //= put 'You broke dis...' } }; fragile xx 2;
05:44 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routines:␤    fragile used at line 1␤    xx used at line 1␤␤»
05:44 BenGoldberg m: BEGIN { my $once; sub fragile { $once //= put 'You broke dis...' } }; fragile for ^2;
05:44 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤    fragile used at line 1␤␤»
05:44 BenGoldberg m: BEGIN { my $once; sub OUTER::fragile { $once //= put 'You broke dis...' } }; fragile for ^2;
05:44 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot use pseudo package OUTER in sub declaration␤at <tmp>:1␤------> 3BEGIN { my $once; sub OUTER::fragile7⏏5 { $once //= put 'You broke dis...' } };␤»
05:44 BenGoldberg m: BEGIN { my $once; our sub fragile { $once //= put 'You broke dis...' } }; fragile for ^2;
05:44 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤    fragile used at line 1␤␤»
05:45 * BenGoldberg frowns
05:46 ugexe m: BEGIN { my $once; my &fragile = sub fragile { $once //= put "You broke dis..." } }; fragile for ^2
05:46 camelia rakudo-moar 843a6b: OUTPUT«===SORRY!===␤P6opaque: no such attribute '$!yada' in type Routine when trying to get a value␤»
05:46 BenGoldberg That's my favorite perl5 way of giving some shared state to a small handful of subs, without that state being seen outside of them.
05:46 James0r joined #perl6
05:47 BenGoldberg m: my &fragile = BEGIN { my $once; sub { $once //= put "You broke dis..." } }; fragile for ^2;
05:47 camelia rakudo-moar 843a6b: OUTPUT«You broke dis...␤»
05:49 BenGoldberg m: my (&foo, &bar); BEGIN { my $counter = 0; &foo = sub { --$counter }; &bar = sub { ++$counter } }; say foo() xx 3, bar();
05:49 camelia rakudo-moar 843a6b: OUTPUT«(-1 -2 -3)-2␤»
05:50 BenGoldberg m: my (&foo, &bar); say foo() xx 3, bar() xx 2; BEGIN { my $counter = 0; &foo = sub { --$counter }; &bar = sub { ++$counter } };
05:50 camelia rakudo-moar 843a6b: OUTPUT«(-1 -2 -3)(-2 -1)␤»
05:52 ZzZombo m: sub fragile{ once put 'You broke dis...'};fragile() x 2
05:52 camelia rakudo-moar 843a6b: OUTPUT«WARNINGS for <tmp>:␤Useless use of "x" in expression "fragile() x 2" in sink context (line 1)␤You broke dis...␤»
05:52 ZzZombo m: sub fragile{ once put 'You broke dis...'};fragile() xx 2
05:52 camelia rakudo-moar 843a6b: OUTPUT«You broke dis...␤»
05:53 ZzZombo m: sub fragile{ once put 'You broke dis...';put 'Stop you criminal scum!'};fragile() xx 2
05:53 camelia rakudo-moar 843a6b: OUTPUT«You broke dis...␤Stop you criminal scum!␤Stop you criminal scum!␤»
06:02 Cabanossi joined #perl6
06:10 cibs joined #perl6
06:16 darutoko joined #perl6
06:23 domidumont joined #perl6
06:24 wamba joined #perl6
06:32 ugexe joined #perl6
06:47 rindolf joined #perl6
06:50 RabidGravy joined #perl6
06:54 pierre_ joined #perl6
07:00 xtreak joined #perl6
07:06 pierre_ joined #perl6
07:08 xtreak p6: (1..*).grep: * % 2 == 0.map: * + 2.take(10)
07:08 camelia rakudo-moar 843a6b: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤  in block <unit> at <tmp> line 1␤␤»
07:20 CIAvash joined #perl6
07:23 CIAvash joined #perl6
07:27 geekosaur joined #perl6
07:29 pierre_ joined #perl6
07:46 ufobat joined #perl6
07:51 Tonik joined #perl6
08:11 dogbert2 joined #perl6
08:15 firstdayonthejob joined #perl6
08:23 dj_goku_ joined #perl6
08:28 wamba joined #perl6
08:30 rurban joined #perl6
08:34 cxreg joined #perl6
08:35 m0ltar joined #perl6
08:41 dakkar joined #perl6
08:48 aborazmeh joined #perl6
08:48 aborazmeh joined #perl6
08:53 dg joined #perl6
09:02 xtreak joined #perl6
09:04 jonas1 joined #perl6
09:08 domidumont joined #perl6
09:10 Actualeyes left #perl6
09:13 domidumont joined #perl6
09:18 Unavowed joined #perl6
09:23 pierre_ joined #perl6
09:29 pierre_ joined #perl6
09:29 brillenfux joined #perl6
09:30 aries_liuxueyang joined #perl6
09:34 xtreak p6: (1..*).grep: * % 2 == 0.map: * + 2.take(10)
09:34 camelia rakudo-moar 843a6b: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤  in block <unit> at <tmp> line 1␤␤»
09:34 xtreak Works on my repl but breaks here . Any clue? Also how do I convert (...) to give the actual results
09:35 scimon joined #perl6
09:39 scimon Hi folks. Can anyone give me any good pointers on the state of Perl6 on the JVM?
09:40 scimon Right now i've got it running via rakudobrew but panda won't install and this makes my plan to convince my boss it's a viable option is hitting a speed bump.
09:41 CIAvash joined #perl6
09:42 wamba joined #perl6
09:44 ZzZombo try zef?
09:45 scimon That won't build either.
09:46 scimon (Just runing them both now to give some more details)
09:47 scimon Panda fails at the bootstrap stage with Cannot unbox a type object and a metric ton of nqp stacktrace.
09:47 giraffe joined #perl6
09:47 scimon (Ubuntu Linux 16.04 with the Oracle Java 8 VM)
09:48 scimon I know Rakudo star currently says the JVM stuff has issues and I figured I'd see if I could help with them. Even if it is by tracking down bugs.
09:49 scimon Zef fails with "Serialization Error: could not locate static code ref for closure"
09:49 CIAvash_ joined #perl6
09:50 scimon (Meeting... will try zef build outside of rakudobrew on my return, any pointers people can give would be great)
09:50 ZzZombo I don't know anything about that, sorry. Wait for someone else. Just hang around, you'll get help.
09:51 CIAvash_ m: (1..*).grep(* %% 2).map(* + 2)[^10]
09:51 camelia rakudo-moar 843a6b: ( no output )
09:51 scimon Cheers. :)
09:51 CIAvash_ m: say (1..*).grep(* %% 2).map(* + 2)[^10]
09:51 camelia rakudo-moar 843a6b: OUTPUT«(4 6 8 10 12 14 16 18 20 22)␤»
09:51 CIAvash_ xtreak: ↑
09:54 xtreak CIAvash_: Thanks. Why does using the colon notation yield a lazy list and how can I make it as a list?
09:54 zakharyas joined #perl6
09:55 gregf_ m: ((1..*).grep: * %% 2.map: * + 2)[1..10]
09:55 camelia rakudo-moar 843a6b: ( no output )
09:56 gregf_ doesnt look quite right :|
09:57 xtreak Is there a way to convert the output of take(10) itself as a list?
09:57 xtreak m: say ((1..*).grep: * %% 2.map: * + 2)[1..10]
09:58 xtreak p6: say ((1..*).grep: * %% 2.map: * + 2)[1..10]
09:58 gregf_ m: (^10).^name.say
09:58 gregf_ m: (^10).List.^name.say
09:58 ZzZombo GJ team
09:59 ZzZombo that will shut those pesky bots for sure
10:00 camelia rakudo-moar 843a6b: OUTPUT«(2 3 4 5 6 7 8 9 10 11)␤»
10:00 camelia rakudo-moar 843a6b: OUTPUT«(2 3 4 5 6 7 8 9 10 11)␤»
10:00 camelia rakudo-moar 843a6b: OUTPUT«Range␤»
10:00 camelia rakudo-moar 843a6b: OUTPUT«List␤»
10:00 arnsholt I think "say (1..*).grep(* %% 2).map(* + 2)[^10]" and "((1..*).grep: * %% 2.map: * + 2)[1..10]" are different
10:01 arnsholt The latter is equivalent to "((1..*).grep(* %% 2.map(* + 2)))[1..10]
10:02 lizmat_ joined #perl6
10:04 dontbe^2 joined #perl6
10:04 abruanese joined #perl6
10:05 xtreak arnsholt: Makes sense :) Sorry to repeat but how do I convert (...) that is the output of take() to a list?
10:05 simcop2387 joined #perl6
10:08 CIAvash joined #perl6
10:08 CIAvash joined #perl6
10:13 siamak joined #perl6
10:14 siamak left #perl6
10:17 CIAvash xtreak: "take" should be used with "gather" https://docs.perl6.org/routine/take it doesn't do what you think it does AFAIK.
10:18 arnsholt Using take outside of a gather should raise an exception
10:19 xtreak CIAvash: Thanks. I got confused take function in other languages
10:20 arnsholt Yeah, it's not Haskell's take at all
10:21 jnthn Try head
10:21 jnthn At least, if the take semantics your thinking of are like the C# ones...
10:21 jnthn *you're # OMG o.O
10:21 * jnthn drinks the coffee faster
10:23 CIAvash m: say (1..*).grep(* %% 2).map(* + 2).head: 10 # xtreak
10:23 camelia rakudo-moar 843a6b: OUTPUT«(4 6 8 10 12 14 16 18 20 22)␤»
10:24 zilti joined #perl6
10:24 zilti To whoever made the Template-Mojo module: Congrats! I get a "Useless use of constant string "blarg" in sink context (line 1)" :P
10:30 CIAvash_ joined #perl6
10:37 krakan joined #perl6
10:37 Dunearhp_ joined #perl6
10:38 diego_k joined #perl6
10:39 xxpor_ joined #perl6
10:40 CIAvash joined #perl6
10:40 nine Now it's official. It really is impossible to find high resolution versions of Perl web framework logos
10:43 dontbe^2 joined #perl6
10:43 raiph joined #perl6
10:43 MilkmanDan joined #perl6
10:43 mtj_ joined #perl6
10:43 ssm joined #perl6
10:43 peteretep joined #perl6
10:43 maddingue joined #perl6
10:43 k-man joined #perl6
10:43 raydiak joined #perl6
10:43 ilogger2 joined #perl6
10:43 alnewkirk joined #perl6
10:43 charsbar______ joined #perl6
11:02 rmusial joined #perl6
11:02 scimon zef build outside of rakudobrew failed with the same message. Trying with --ll-exception now
11:04 scimon So it looks like it's the load_module code which would match with the comments in the Rakudo Star about JVM not doing modules...
11:05 babydrop During last release there were JVM issues even on nqp level, so ....
11:05 babydrop Works fine on the much better supported MoarVM tho.
11:07 babydrop And as much as I want Perl 6 to succeed the JVM backend is not a "viable option" for any boss IMO.
11:08 scimon Sigh.
11:08 babydrop :)
11:08 scimon Mine are wedded to the JVM and think it's the best thing since sliced bread.
11:08 scimon I foresee one of two annoying options.
11:09 babydrop We've a bit of a shortage of JVM volunteers. The ones we have can only do so much with their time.
11:10 scimon Well I can try and help. Might take me a while to get up to speed.
11:10 psch ++scimon
11:11 babydrop scimon: that would be awesome.
11:12 scimon Not sure how much help I'll BE. I'll start noodling around.
11:12 babydrop scimon: we also have #perl6-dev  the couple of JVM folks who can give you hints are psch and bartolin
11:13 psch jnthn++ to most likely, as well as arnsholt++
11:13 psch s/to /too/
11:13 psch tbh, maybe shifting towards at-least-installing-modules might be reasonable for me instead of prodding at jvminterop almost exclusively... :)
11:14 scimon Being able to install the module installer would be nice :)
11:16 scimon right now I should do some dayjob as the sprints started.
11:27 scimon (Joined perl6-dev going to lurk for a while)
11:28 babydrop Would be sweet if someone took a gander at failing JVM nqp tests :) They're kind of a pain in the ass, because we don't have a fudger in nqp and Rakudo's automated release system was built on the assumption that nqp tests always pass :)
11:29 * psch guesses that's new tests again and we just never noticed that the jvm fails them :/
11:29 babydrop at least some of them definitely yeah
11:30 * scimon goes off to read nqp stuff.
11:30 psch scimon: did you find the edumentab slides?  those are pretty great
11:31 scimon I have now.
11:31 dalek doc: ce7c9f6 | gfldex++ | doc/Language/typesystem.pod6:
11:31 dalek doc: tell where default types are used
11:31 dalek doc: review: https://github.com/perl6/doc/commit/ce7c9f6eb2
11:31 synopsebot6 Link: http://doc.perl6.org/language/typesystem
11:32 roman_ joined #perl6
11:43 dalek doc: c7b14ae | gfldex++ | doc/Language/containers.pod6:
11:43 dalek doc: doc type constraints and their introspection for containers
11:43 synopsebot6 Link: http://doc.perl6.org/language/containers
11:43 dalek doc: review: https://github.com/perl6/doc/commit/c7b14aefa9
11:44 ZzZombo sorry for nagging, but I could use some help
11:44 ZzZombo m: https://gist.github.com/ZzZombo/​5caa51f9b238462d628a5b556920a0d8
11:44 camelia rakudo-moar 843a6b: OUTPUT«Perl6::Metamodel::ClassHOW.new␤No such method 'find_private_method' for invocant of type 'Perl6::Metamodel::PackageHOW'␤  in block  at <tmp> line 48␤  in method handler at <tmp> line 44␤  in submethod tweak at <tmp> line 15␤  in block <unit> at <…»
11:44 ZzZombo why does it look into Perl6::Metamodel::PackageHOW instead of Perl6::Metamodel::ClassHOW??
11:48 jonas1 joined #perl6
11:48 psch m: package Attribute::Handling { sub do-stuff is export { my method foo { self!"bar"() } } }; import Attribute::Handling; do-stuff()("foo")
11:48 camelia rakudo-moar 843a6b: OUTPUT«No such method 'find_private_method' for invocant of type 'Perl6::Metamodel::PackageHOW'␤  in method foo at <tmp> line 1␤  in block <unit> at <tmp> line 1␤»
11:51 dalek doc: 0bf8b18 | gfldex++ | doc/Language/variables.pod6:
11:51 dalek doc: be precise where the default type constraint actually comes from
11:51 synopsebot6 Link: http://doc.perl6.org/language/variables
11:51 dalek doc: review: https://github.com/perl6/doc/commit/0bf8b186e2
11:51 pierre_ joined #perl6
11:52 psch ZzZombo: i'd try using an explicit invocant in the methods you're adding to the things you're putting your trait on
11:53 ZzZombo like method m(Class:)?
11:53 psch ZzZombo: i.e. 'method handler(Class $class:) {...}' instead of getting it via the package
11:53 ZzZombo but I do not get the type object, I get there an instance.
11:53 psch ZzZombo: i'd guess the lexical self gets bound a bit wrongly
11:54 psch not really sure about that though
11:54 ZzZombo Do you really mean the class here?
11:54 psch ZzZombo: you're doing ^add_method with a method that doesn't have an explicit invocant, instead you're using 'self'
11:55 psch ZzZombo: i suspect that might bind wrongly, which is why you get the error you do
11:55 psch ZzZombo: hence i suggest using an explicit invocant instead of 'self'
11:56 lukaramu joined #perl6
11:56 psch ZzZombo: it might be that doesn't help, too, it's just the only thing that immediately comes to mind
11:57 ZzZombo didn't help indeed.
11:57 dalek doc: b9a6dc8 | gfldex++ | doc/Language/containers.pod6:
11:57 dalek doc: fill in links I forgot
11:57 synopsebot6 Link: http://doc.perl6.org/language/containers
11:57 dalek doc: review: https://github.com/perl6/doc/commit/b9a6dc8f57
11:58 cibs joined #perl6
12:00 CIAvash joined #perl6
12:00 DrForr [Coke] Re: syntax highighting - Pretty damn close actually. I'm redoing the strings so I can properly address here-docs, there's an errant semicolon in array accesses that I need to address, and a few other minor corner cases.
12:00 CIAvash joined #perl6
12:05 dalek doc: 3ffdc37 | gfldex++ | doc/Type/Variable.pod6:
12:05 dalek doc: doc trait of
12:05 dalek doc: review: https://github.com/perl6/doc/commit/3ffdc3782c
12:05 synopsebot6 Link: http://doc.perl6.org/type/Variable
12:08 dalek doc: 19169cc | gfldex++ | doc/Language/ (2 files):
12:08 dalek doc: link to trait of
12:08 dalek doc: review: https://github.com/perl6/doc/commit/19169cc296
12:12 dalek doc: 78c92fc | seatek++ | doc/Language/traps.pod6:
12:12 dalek doc: behaviour of once in classes
12:12 synopsebot6 Link: http://doc.perl6.org/language/traps
12:12 dalek doc: review: https://github.com/perl6/doc/commit/78c92fc761
12:14 travis-ci joined #perl6
12:14 travis-ci Doc build errored. Wenzel P. P. Peppmeyer 'link to trait of'
12:14 travis-ci https://travis-ci.org/perl6/doc/builds/180375810 https://github.com/perl6/doc/com​pare/3ffdc3782c4f...19169cc29699
12:14 travis-ci left #perl6
12:15 pmurias joined #perl6
12:16 telex joined #perl6
12:19 travis-ci joined #perl6
12:19 travis-ci Doc build errored. seatek 'behaviour of once in classes'
12:19 travis-ci https://travis-ci.org/perl6/doc/builds/180376735 https://github.com/perl6/doc/com​pare/19169cc29699...78c92fc76197
12:19 travis-ci left #perl6
12:20 seatek travis... he only comes by to complain
12:20 gfldex i found many complains of travis to be very helpful
12:20 gfldex not his fault that the ssl module for a heisentest
12:21 gfldex s/for/comes with/
12:21 seatek oh it's still the ssl stuff. gotcha :)
12:24 itaipu joined #perl6
12:24 seatek he's still having trouble loading dependencies in another module... i have no idea what to do about it either
12:26 canopus joined #perl6
12:29 seatek does travis (zef) recursively get dependencies or must you list the dependencies of your dependencies in your .json file?
12:34 kurahaupo_ joined #perl6
12:39 tadzik no, module installers handle them recursively
12:39 tadzik you only have to list the toplevel ones
12:40 seatek well one of my "upstreams" must be screwy then, but his tests passed... trying it again listing some of his dependencies too
12:40 kurahaupo joined #perl6
12:41 eythian joined #perl6
12:44 seatek yeah this time failed on HTTP::Server::Tiny
12:49 babydrop Oh... It's Dec 1st! Advent!!! weeeeeee
12:49 babydrop https://perl6advent.wordpress.com/
12:51 timotimo tadzik: how do you feel that one of your humble modules is used for the first advent calendar post? :)
12:52 DrForr Sh*t, right, need to write this weekend.
12:53 timotimo if you don't write it, there'll be no weekend?
12:53 timotimo [Coke]: i'm going to fix a html mess-up in your code
12:54 timotimo oh dang it, the original data's gone
12:54 DrForr Obviously you don't know my alter ego :) Have you by chance seen /Dr. Strange/? :)
12:54 timotimo i have
12:54 timotimo [Coke]: can you put the $data<this-stuff-here> back into your post? it got turned into html, then discarded ;(
12:55 timotimo i hope coke is here, otherwise i'll have to follow the code along manually and check it for myself
12:56 gfldex i wonder if we could link to perl6.org from the advent blog
13:01 timotimo sounds like a good idea to have
13:02 El_Che nice words of brian d foy fir the perl6 community in his last update
13:04 babydrop .tw dfoy_perl
13:04 yoleaux Och, A cannae finde nae tweet
13:04 DrForr Yes, they are.
13:04 babydrop :/
13:05 babydrop Well, what are they?
13:05 babydrop .tw briandfoy_perl
13:05 yoleaux The Perl 6 Advent Calendar has started. https://perl6advent.wordpress.com Day 1: Consuming GitHub Webhooks. (@briandfoy_perl)
13:05 timotimo i can't json-parse the damn blob that i received with nc -l
13:06 El_Che https://www.kickstarter.com/projects/14​22827986/learning-perl-6/posts/1751787
13:06 babydrop tl;dr
13:06 wamba joined #perl6
13:08 timotimo [Coke]: emergency :S
13:11 babydrop timotimo: what did you do? :)
13:11 psch edit an advent post with a different editor than the original author i'd guess
13:12 psch note, the guess is only the "different editor" part :)
13:14 babydrop I wonder if blog posts have some sort of diff history... I think pages do.
13:14 timotimo i did nothing
13:15 timotimo i'm just not able to infer the right things to put into the code there
13:16 ZzZombo m: class A {method !m{put 'Hi!'};method n{self!'m'()};A.new.n
13:16 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing block␤at <tmp>:1␤------> 3{put 'Hi!'};method n{self!'m'()};A.new.n7⏏5<EOL>␤    expecting any of:␤        statement end␤        statement modifier␤        statement modifier loop␤»
13:16 ZzZombo m: class A {method !m{put 'Hi!'};method n{self!'m'()}};A.new.n
13:16 camelia rakudo-moar 843a6b: OUTPUT«Hi!␤»
13:18 Khisanth joined #perl6
13:19 ZzZombo m: class A {method !m{put 'Hi!'};BEGIN {my method n{self!'m'()};A.^add_method('n',&n) }};A.new.n
13:19 camelia rakudo-moar 843a6b: OUTPUT«Hi!␤»
13:19 firstdayonthejob joined #perl6
13:21 bjz joined #perl6
13:24 mr_ron joined #perl6
13:25 babydrop .seen kyclark
13:25 yoleaux I saw kyclark 30 Nov 2016 21:54Z in #perl6: <kyclark> Thanks.
13:26 babydrop m: say DateTime.new("2016-12-02T00:00:00Z") - DateTime.now.utc
13:26 camelia rakudo-moar 843a6b: OUTPUT«Cannot resolve caller Numeric(DateTime: ); none of these signatures match:␤    (Mu:U \v: *%_)␤  in block <unit> at <tmp> line 1␤␤»
13:26 babydrop :/
13:27 * babydrop expected a Duration in return
13:27 babydrop m: say DateTime.now.utc
13:27 camelia rakudo-moar 843a6b: OUTPUT«2016-12-01T13:27:32.696996Z␤»
13:28 babydrop .tell kyclark reminder: your Advent post is meant to be published in about 10.5 hours since I write this message...
13:28 yoleaux babydrop: I'll pass your message to kyclark.
13:29 babydrop m: say (DateTime.new("2016-12-02T00:00:00Z").Instant - DateTime.now.utc.Instant)/60/60
13:29 camelia rakudo-moar 843a6b: OUTPUT«10.5151594994058␤»
13:29 babydrop woo, I was totally close \o/
13:30 ZzZombo m: package P{role R{submethod TWEAK{my method n{self!'m'()};self.^add_method('n',&n)}}};import P;class A does R {method !m{put 'Hi!'} }};A.new.n
13:30 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Invalid typename 'R'␤at <tmp>:1␤------> 3ethod('n',&n)}}};import P;class A does R7⏏5 {method !m{put 'Hi!'} }};A.new.n␤»
13:30 ZzZombo m: package P{role R is export{submethod TWEAK{my method n{self!'m'()};self.^add_method('n',&n)}}};import P;class A does R {method !m{put 'Hi!'} }};A.new.n
13:30 camelia rakudo-moar 843a6b: OUTPUT«===SORRY!===␤Cannot invoke this object (REPR: P6opaque; NQPMu)␤»
13:31 babydrop heh
13:31 ZzZombo bah
13:36 tadzik timotimo: Like a proud parent seeing his child leave home and be strong and independent :')
13:36 tadzik and kudos to ufobat++ for maintaining it and keeping it great :)
13:36 ZzZombo m: package P{multi sub trait_mod:<is> is export($target,:$wut){my method n{self!'m'()};$target.^add_method('n',&n)}};import P;class A is wut {method !m{put 'Hi!'} }};A.new.n
13:36 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '$target' is not declared␤at <tmp>:1␤------> 3ge P{multi sub trait_mod:<is> is export(7⏏5$target,:$wut){my method n{self!'m'()};$␤»
13:36 ZzZombo m: package P{multi sub trait_mod:<is> is export(:$target,:$wut){my method n{self!'m'()};$target.^add_method('n',&n)}};import P;class A is wut {method !m{put 'Hi!'} }};A.new.n
13:36 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '$target' is not declared␤at <tmp>:1␤------> 3e P{multi sub trait_mod:<is> is export(:7⏏5$target,:$wut){my method n{self!'m'()};$␤»
13:38 ZzZombo m: package P{multi sub trait_mod:<is>($target,:$wut) is export{my method n{self!'m'()};$target.^add_method('n',&n)}};import P;class A is wut {method !m{put 'Hi!'} }};A.new.n
13:38 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5===␤Trait 'is export' needs whitespace before block␤at <tmp>:1␤------> 3self!'m'()};$target.^add_​method('n',&n)}7⏏5};import P;class A is wut {method !m{put␤Missing block (apparently claimed by 'is export')␤at <tmp>:1␤------…»
13:38 ZzZombo m: package P{multi sub trait_mod:<is>($target,:$wut) is export {my method n{self!'m'()};$target.^add_method('n',&n)}};import P;class A is wut {method !m{put 'Hi!'} }};A.new.n
13:38 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤'A' cannot inherit from 'wut' because it is unknown.␤at <tmp>:1␤»
13:39 babydrop ZzZombo: FWIW, camelia can take /msg and there's also #zofbot
13:42 ZzZombo so this is the minimal example of the roadblock
13:42 ZzZombo m: package P{multi sub trait_mod:<is>(Method $target,:$wut) is export {my method n{self!'m'()};$target.package​.^add_method('n',&n)}};import P;class A {method !m is wut {put 'Hi!'} };A.new.n
13:42 camelia rakudo-moar 843a6b: OUTPUT«No such method 'find_private_method' for invocant of type 'Perl6::Metamodel::PackageHOW'␤  in method n at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
13:43 ZzZombo I suspect this to be a bug.
13:44 ZzZombo Hm...
13:45 ZzZombo actually I managed to strip it down even further
13:45 ZzZombo m: sub trait_mod:<is>(Method $target,:$wut) {my method n{self!'m'()};$target.packag​e.^add_method('n',&n)};class A {method !m is wut {put 'Hi!'} };A.new.n
13:45 camelia rakudo-moar 843a6b: OUTPUT«No such method 'find_private_method' for invocant of type 'Perl6::Metamodel::PackageHOW'␤  in method n at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
13:46 ZzZombo m: sub trait_mod:<is>(Method $target,:$wut) {my method n{put self.^name;self!'m'()};$target.pa​ckage.^add_method('n',&n)};class A {method !m is wut {put 'Hi!'} };A.new.n
13:46 camelia rakudo-moar 843a6b: OUTPUT«A␤No such method 'find_private_method' for invocant of type 'Perl6::Metamodel::PackageHOW'␤  in method n at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
13:46 psch m: sub foo { my method :: { self!"bar"() } }; foo()("baz") # actual golf
13:46 camelia rakudo-moar 843a6b: OUTPUT«No such method 'find_private_method' for invocant of type 'Perl6::Metamodel::PackageHOW'␤  in method <anon> at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
13:46 ZzZombo m: sub trait_mod:<is>(Method $target,:$wut) {my method n{put self.HOW.^name;self!'m'()};$target.​package.^add_method('n',&n)};class A {method !m is wut {put 'Hi!'} };A.new.n
13:46 camelia rakudo-moar 843a6b: OUTPUT«Perl6::Metamodel::ClassHOW␤No such method 'find_private_method' for invocant of type 'Perl6::Metamodel::PackageHOW'␤  in method n at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
13:46 psch m: my method m { self!"bar"() }; m(1) # or even this...
13:46 camelia rakudo-moar 843a6b: OUTPUT«No such method 'find_private_method' for invocant of type 'Perl6::Metamodel::PackageHOW'␤  in method m at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
13:48 ZzZombo but your last example has no invocant, so that is probably legit.
13:48 AlexDaniel joined #perl6
13:48 psch ZzZombo: non of your examples have an invocant either
13:48 psch ZzZombo: in the method signature at least
13:48 ZzZombo how so? they do have
13:48 psch "my method n"
13:49 psch "method !m "
13:49 psch no invocant marker in the signature
13:49 ZzZombo m(1) calls m with argument 1  and no invocant.
13:49 thib joined #perl6
13:49 psch m: class A { method m { say self } }; my &m = A.^lookup('m')[0]; m(A.new)
13:49 camelia rakudo-moar 843a6b: OUTPUT«A.new␤»
13:49 psch ZzZombo: you're wrong :)
13:49 ZzZombo my example have invocant of a newly created instance of type A
13:50 Actualeyes joined #perl6
13:50 ZzZombo WTF is that legal?
13:51 psch m: sub f(A:D $) { say "got an A!" }; class A { }; A.&f
13:51 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Invalid typename 'A' in parameter declaration.␤at <tmp>:1␤------> 3sub f(A:D7⏏5 $) { say "got an A!" }; class A { }; A.␤    expecting any of:␤        pair value␤»
13:51 psch m: class A { }; sub f(A:D $) { say "got an A!" }; A.&f
13:51 camelia rakudo-moar 843a6b: OUTPUT«Parameter '<anon>' requires an instance of type A, but a type object was passed.  Did you forget a .new?␤  in sub f at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
13:51 psch m: class A { }; sub f(A:D $) { say "got an A!" }; A.new.&f
13:51 camelia rakudo-moar 843a6b: OUTPUT«got an A!␤»
13:51 psch works the other way around too vOv
13:51 psch (even if it took me a while :P )
13:52 ZzZombo I know about ^, and it actually makes sense and is consistent, but the m(1) form is dumb.
13:52 AlexDaniel joined #perl6
13:53 psch it makes the same amount of sense and is similarly consistent...
13:55 ZzZombo no. It's customary to put the invocant ina special place, like $foo.bar or $foo: bar. But in bar($foo) it gets lost as an argument, and can be confused with a sub call.
13:56 babydrop um.... It *is* a sub call
13:56 psch ah, appeal to tradition
13:56 psch well, if that's your argument vOv
13:57 ZzZombo ugh, should I take that as methods and subs are intechangable, so you can just use one as the other?
13:57 babydrop ZzZombo: they're both Routines, yes
13:57 psch they're not completely interchangeable though
13:57 babydrop ZzZombo: I wouldn't say "interchangable," but you can use subs as methods
13:57 ZzZombo why even make a distinct keyword then?
13:58 psch m: sub($: ) { } # invocant marker
13:58 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unexpected block in infix position (missing statement control word before the expression?)␤at <tmp>:1␤------> 3sub($: )7⏏5 { } # invocant marker␤    expecting any of:␤        infix␤        in…»
13:58 babydrop ZzZombo: methods automatically place their invocant to self
13:58 psch m: sub ($a: ) { } # what i wanted to show :P
13:58 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Can only use the : invocant marker in the signature for a method␤at <tmp>:1␤------> 3sub ($a: 7⏏5) { } # what i wanted to show :P␤»
13:58 babydrop I put the sub-as-method-call to good use in my presentation: http://tpm2016-2.zoffix.com/
13:58 psch m: sub { self };
13:58 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤'self' used where no object is available␤at <tmp>:1␤------> 3sub {7⏏5 self };␤    expecting any of:␤        term␤»
13:58 babydrop </shameless-self-promotion>
13:58 psch methods are sorta like subs but more OO-friendly
13:58 ZzZombo good try?
13:59 psch so, they give you a few OO things
13:59 psch like allowing an invocant marker and binding a lexical 'self'
13:59 psch also they add themselves to a method table on a object which is why we need the & in $obj.&sub
14:00 psch because that means "look for the code object lexically, not in the method cache"
14:00 psch in a way *handwave*
14:00 aries_liuxueyang joined #perl6
14:00 babydrop *handwave*? Like, these aren't the droids you're looking for handwave? :)
14:01 psch no, like "i'm sure that's not all the reason and probably not perfectly detailed either" :S
14:01 babydrop :D
14:01 ZzZombo m: my method m($a?,$b?) { dd self;self!"bar"() }; m(1)
14:01 camelia rakudo-moar 843a6b: OUTPUT«1␤No such method 'find_private_method' for invocant of type 'Perl6::Metamodel::PackageHOW'␤  in method m at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
14:01 ZzZombo m: my method m($a?,$b?) { dd self;self!"bar"() }; m(1,2,3)
14:01 camelia rakudo-moar 843a6b: OUTPUT«1␤No such method 'find_private_method' for invocant of type 'Perl6::Metamodel::PackageHOW'␤  in method m at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
14:02 ZzZombo m: my method m($a?,$b?) { dd (self,$x,$y);self!"bar"() }; 1.m(1,2,3)
14:02 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '$x' is not declared␤at <tmp>:1␤------> 3my method m($a?,$b?) { dd (self,7⏏5$x,$y);self!"bar"() }; 1.m(1,2,3)␤»
14:02 ZzZombo m: my method m($a?,$b?) { dd (self,$a,$b);self!"bar"() }; 1.m(1,2,3)
14:02 camelia rakudo-moar 843a6b: OUTPUT«No such method 'm' for invocant of type 'Int'␤  in block <unit> at <tmp> line 1␤␤»
14:02 ZzZombo m: my method m($a?,$b?) { dd (self,$a,$b);self!"bar"() }; 1.&m(1,2,3)
14:02 camelia rakudo-moar 843a6b: OUTPUT«Too many positionals passed; expected 1 to 3 arguments but got 4␤  in method m at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
14:02 ZzZombo m: my method m($a?,$b?) { dd (self,$a,$b);self!"bar"() }; 1.&m(1,2)
14:02 camelia rakudo-moar 843a6b: OUTPUT«(1, 1, 2)␤No such method 'find_private_method' for invocant of type 'Perl6::Metamodel::PackageHOW'␤  in method m at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
14:02 * babydrop giggles
14:03 ZzZombo anyway, let's go back to the original topic.
14:03 ZzZombo what's wrong with that code?
14:03 babydrop .tell [Coke] advent post problem: https://twitter.com/mcreena​n/status/804320288921907200
14:03 yoleaux babydrop: I'll pass your message to [Coke].
14:03 psch probably something about what's bound to the invocant and where it looks for private methods
14:04 babydrop I guess that's what timotimo was trying to fix...
14:05 ZzZombo but the invocant is the right object, the reason must be lying deeper.
14:06 babydrop ZzZombo: a wild guess would be the reason is how private methods are looked up.
14:06 babydrop I mean, you can't have multi private methods, for example either.
14:06 babydrop And normally, you'd have to specify what class the private method is from, unless it's from current class and there ain't a current class in that case
14:07 ZzZombo what do you mean no current class?
14:07 babydrop ZzZombo: well, that method is not defined inside any class {}... It's "detached method" or wahtever we call it
14:07 cdg joined #perl6
14:08 ZzZombo I add it via ^add_method().
14:08 ZzZombo It's inside the class since then.
14:08 psch ZzZombo: so, at runtime
14:08 psch ZzZombo: which proobably makes stuff weird too vOv
14:08 babydrop ZzZombo: but normally you just give add_method a code block, not a detached method, don't you?
14:08 ZzZombo Not really at runtime. It is done before the class is composed initially.
14:09 babydrop m: my method m($a?,$b?) { dd (self,$a,$b);self!bar }; (1 but role { method !bar {say "woot"} ).&m(1,2)
14:09 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Private method call to bar must be fully qualified with the package containing the method␤at <tmp>:1␤------> 3od m($a?,$b?) { dd (self,$a,$b);self!bar7⏏5 }; (1 but role { method !bar {say "woot␤ …»
14:09 dalek doc: 65d800b | gfldex++ | doc/Type/Nil.pod6:
14:09 dalek doc: fix markup
14:09 synopsebot6 Link: http://doc.perl6.org/type/Nil
14:09 dalek doc: review: https://github.com/perl6/doc/commit/65d800bec6
14:09 babydrop m: my method m($a?,$b?) { dd (self,$a,$b);self!bar }; 1.&m(1,2)
14:09 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Private method call to bar must be fully qualified with the package containing the method␤at <tmp>:1␤------> 3od m($a?,$b?) { dd (self,$a,$b);self!bar7⏏5 }; 1.&m(1,2)␤    expecting any of:␤    …»
14:09 babydrop ^ you even get a sane error if you don't use the quotes thing
14:09 babydrop m: my method m($a?,$b?) { dd (self,$a,$b); self!Foo::bar }; (1 but role Foo { method !bar {say "woot"} ).&m(1,2)
14:09 camelia rakudo-moar 843a6b: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol Foo␤»
14:09 ZzZombo But that method is the detached one here.
14:09 babydrop crap error (no location)
14:11 ZzZombo m: sub trait_mod:<is>(Method $target,:$wut) {my method n{put self.HOW.^name;self!m()};$target.p​ackage.^add_method('n',&n)};class A {method !m is wut {put 'Hi!'} };A.new.n
14:11 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Private method call to m must be fully qualified with the package containing the method␤at <tmp>:1␤------> 3{my method n{put self.HOW.^name;self!m()7⏏5};$targe​t.package.^add_method('n',&n)};c␤»
14:12 ZzZombo m: sub trait_mod:<is>(Method $target,:$wut) {my method n{put self.HOW.^name;self!A::m()};$target​.package.^add_method('n',&n)};class A {method !m is wut {put 'Hi!'} };A.new.n
14:12 camelia rakudo-moar 843a6b: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol A␤»
14:12 timotimo babydrop: i wonder if we should put an editor's note or something into the article
14:12 babydrop timotimo: why not just fix the issue?
14:13 babydrop m: class Foo { trusts GLOBAL; method !bar { say "w00t" } }; my method m($a?,$b?) { self!Foo::bar }; (Foo.new).&m(1,2)
14:13 camelia rakudo-moar 843a6b: OUTPUT«w00t␤»
14:13 rindolf joined #perl6
14:13 timotimo https://gist.github.com/timo/4a​13dab83d075914496496355e4fa80f - please go ahead and figure out which exact keys coke was using
14:15 babydrop timotimo: well, what's the issue exactly? The tweet  said something about $data<> parsing as HTML but I see it fine :/
14:16 babydrop oh the HTML editor already shows mangled data
14:17 timotimo yeah, it's no longer there to see what it was meant to be
14:17 timotimo otherwise i would have Just Done It
14:18 babydrop yeah I can fix it
14:19 ZzZombo m: sub trait_mod:<is>(Method $target,:$wut) {my method n{put self.HOW.^name;self.^find_private_method('m')(se​lf)};$target.package.^add_method('n',&n)};class A {method !m is wut {put 'Hi!'} };A.new.n
14:19 camelia rakudo-moar 843a6b: OUTPUT«Perl6::Metamodel::ClassHOW␤Hi!␤»
14:19 ZzZombo screw this, gonna hack into
14:19 [Coke] TimToady: it's not too late to make that bracket style illegal, is it?
14:20 yoleaux 14:03Z <babydrop> [Coke]: advent post problem: https://twitter.com/mcreena​n/status/804320288921907200
14:20 DrForr [Coke]: Howdy.
14:21 babydrop [Coke]: oh... I guess you can fix it now. I did half of it, but now I think whether they're meant to be all the same :)
14:21 DrForr Looks like you're getting dogpiled there :) Sorry.
14:21 * babydrop bails out of the editor
14:21 * [Coke] reminds people that camelia works in private.
14:21 ZzZombo So, what's the resolution? Was it even intended to have mirrored to self."method"() call notation as self."!method"()?
14:22 ZzZombo whoops, meant self!"method"().
14:22 kyclark joined #perl6
14:22 babydrop kyclark: !
14:22 babydrop You have a robo-message
14:24 [Coke] timotimo: ... why are you breaking things? :|
14:24 timotimo i did nothing at all, [Coke]
14:24 * [Coke] skips backscroll.
14:24 [Coke] what's the problem
14:24 [Coke] ?
14:25 babydrop [Coke]: the $data<foo><bar> gets rendered as $data because <foo> and <bar> get parsed as HTML tags
14:25 ZzZombo If not, it probably should be noted in the docs.
14:25 babydrop [Coke]: you need to write them as $data&lt;foo&gt;&lt;bar&gt;
14:26 timotimo not only did it get rendered as just $data, but the stuff after $data also disappeared from the HTML source code in the editor.
14:26 [Coke] (this, btw, is why I posted it days earlier to get eyes on. :)
14:26 [Coke] fixing..
14:27 timotimo sorry :( :( :(
14:27 [Coke] A more recent version of this post exists, restore? that's not good.
14:27 [Coke] has anyone been in editing? not sure what I'm getting if I restore here.
14:27 kurahaupo__ joined #perl6
14:27 babydrop [Coke]: I was, but you can toss it.
14:28 babydrop [Coke]: I was trying to fix it 'cause I didn't know you'd come around so fast :)
14:28 timotimo i opened it for editing, but i tossed whatever i did by using the "back" button and clicking "yeah whatever"
14:31 [Coke] should be better now.
14:31 matiaslina joined #perl6
14:32 timotimo sorry for not looking earlier
14:32 babydrop Great
14:32 timotimo i should make a point of checking other people's posts
14:32 amalia_ joined #perl6
14:32 [Coke] timotimo: not your fault, don't worry about it.
14:33 [Coke] I missed it too. (which is annoying, because I thought I proofed it too!)
14:33 timotimo hm
14:33 [Coke] s/too/myself/
14:34 babydrop [Coke]: what time are the posts supposed to get published at midnight UTC?
14:34 ZzZombo Why does
14:34 ZzZombo class A{method m{put 'Yea'}};my $a=A.new;$a.'m'()
14:34 ZzZombo works, but
14:34 ZzZombo class A{method m{put 'Yea'}};my $a=A.new;'m'($a)
14:34 ZzZombo doesn't?
14:34 [Coke] (thankfully, I had 95% of that posted saved locally as a .md file. :)
14:35 [Coke] ZzZombo: you're trying to call a string as a sub. Not sure what magic you're expecting there.
14:35 babydrop ZzZombo: the former uses the method infix op, the latter uses CALL-ME on a Str object
14:35 [Coke] I mean, I know the end result you're expecting, but there's no way to infer that on a string.
14:35 timotimo ZzZombo: you want ::('m')($a) for the lookup
14:35 wamba joined #perl6
14:35 babydrop [Coke]: .. meaning, you successfully inferred it? :)
14:36 * [Coke] ROTFLS as "skip backscroll" was about 1 line before backscrool.
14:36 ZzZombo thanks, that clears things up.
14:36 [Coke] babydrop: so that's ONE thing I can do that the perl 6 compiler can't. :)
14:36 babydrop :)
14:37 rindolf joined #perl6
14:37 ZzZombo <ZzZombo> Was it even intended to have mirrored to self."method"() call notation as self!"method"()?
14:37 babydrop There's a ."!methodname"() call in core... so *shrug*
14:38 babydrop (note the ! being inside the quotes)
14:38 ZzZombo like a."!x"()
14:38 ZzZombo ?
14:38 babydrop yeah
14:38 ZzZombo hmm
14:38 babydrop ZzZombo: like here: https://github.com/rakudo/rakudo/blob/nom​/src/Perl6/Metamodel/BOOTSTRAP.nqp#L2182
14:39 babydrop I don't know if that's calling a private method tho :)
14:39 jnthn self.'!foo'() style things are because NQP doesn't really have private methods, so we use that as a convention :)
14:39 babydrop Ahhh
14:39 jnthn I'd expect self!"foo"() to be the appropraiate name-indirect syntax in Perl 6
14:40 ZzZombo yeah, I was surprised because earlier I it didn't worked.
14:40 ZzZombo work*
14:41 jnthn m: my $a; $a!"foo"()
14:41 camelia rakudo-moar 843a6b: OUTPUT«No such method 'find_private_method' for invocant of type 'Perl6::Metamodel::PackageHOW'␤  in block <unit> at <tmp> line 1␤␤»
14:41 jnthn Seems it parses fine
14:42 jnthn m: class A { method !x() { say 42 }; method y() { self!"x"() } }; A.y
14:42 camelia rakudo-moar 843a6b: OUTPUT«42␤»
14:42 jnthn It even works fine :)
14:42 babydrop The way we came onto this is using it in detached methods
14:43 jnthn Hmm
14:43 ZzZombo m: my method m { self!"bar"() }; m(1)
14:43 camelia rakudo-moar 843a6b: OUTPUT«No such method 'find_private_method' for invocant of type 'Perl6::Metamodel::PackageHOW'␤  in method m at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
14:43 dalek doc: 3813c8e | gfldex++ | doc/Type/Signature.pod6:
14:43 synopsebot6 Link: http://doc.perl6.org/type/Signature
14:43 dalek doc: show how to slip a complex Hash into named arguments
14:43 dalek doc: review: https://github.com/perl6/doc/commit/3813c8e8d9
14:43 jnthn You'd need to find a way to qualify it
14:43 babydrop m: class Foo { trusts GLOBAL; method !bar { say "w00t" }}; my method m($a?,$b?) { self!Foo::bar }; (Foo.new).&m(1,2)
14:43 camelia rakudo-moar 843a6b: OUTPUT«w00t␤»
14:44 jnthn self!foo really means self![compiler inserts current package here]::foo
14:44 babydrop And I guess ZzZombo's original expectation was that self!"bar"() would work
14:44 babydrop m: class Foo { trusts GLOBAL; method !bar { say "w00t" }}; my method m($a?,$b?) { self!bar }; (Foo.new).&m(1,2)
14:44 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Private method call to bar must be fully qualified with the package containing the method␤at <tmp>:1␤------> 00t" }}; my method m($a?,$b?) { self!bar7⏏5 }; (Foo.new).&m(1,2)␤    expecting any o…»
14:44 babydrop jnthn: what about self!"foo"()?
14:44 ZzZombo Look at https://gist.github.com/ZzZombo/​5caa51f9b238462d628a5b556920a0d8, I get the name from outside as a string.
14:44 jnthn If you're not lexically inside the package it'd have to be qualified.
14:44 babydrop m: class Foo { trusts GLOBAL; method !bar { say "w00t" }}; my method m($a?,$b?) { self!"bar"() }; (Foo.new).&m(1,2)
14:44 camelia rakudo-moar 843a6b: OUTPUT«No such method 'find_private_method' for invocant of type 'Perl6::Metamodel::PackageHOW'␤  in method m at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
14:44 babydrop because the quoted version has that ^ weird error, while unquoted version gives a sane error
14:45 babydrop m: method { self!"bar"() }(42)
14:45 camelia rakudo-moar 843a6b: OUTPUT«No such method 'find_private_method' for invocant of type 'Perl6::Metamodel::PackageHOW'␤  in method <anon> at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
14:45 babydrop m: method { self!bar() }(42)
14:45 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Private method call to bar must be fully qualified with the package containing the method␤at <tmp>:1␤------> 3method { self!bar()7⏏5 }(42)␤»
14:45 babydrop shorter golf
14:46 jnthn Yeah, we could catch and complain at compile time the quoted case too
14:46 jnthn Unless the intent was to make self!"A::$foo"() style things work
14:47 jnthn But we don't try to do anything like that today
14:48 jnthn And I guess maybe shouldn't
14:49 jnthn Making self!A::("foo")() work would probably be the consistent way
14:49 bazzaar joined #perl6
14:50 jnthn Calling privates from the outside is probably best done through the MOP though
14:50 jnthn Which is the "official" mechanism to defeat the compiler's enforcement of privacy :)
14:50 ZzZombo I'd be fine just if somebody could tell me why somehow it ends up looking for the method it Perl6::Metamodel::PackageHOW instead of ClassHOW, in my case, as it's clearly what the object is inside the handler method.
14:51 wisti joined #perl6
14:51 ZzZombo I already ended up using ^find_private_method, so I don't really pursue the issue.
14:51 ZzZombo s/it/in/
14:52 jnthn ZzZombo: Oh, that's easy: it just takes the current pakcage you're in to qualify the private method call
14:52 jnthn And if you write your method at the top level, you're in the GLOBAL package
14:53 jnthn It's a static, not a dynamic, decision, since private methods are not virtual
14:53 jnthn By definition :)
14:53 jnthn That's the reason why stuff like:
14:53 ZzZombo A better error handling should suffice then. I've spent the whole day banging my head against it.
14:53 jnthn m: class C { method !xx() { }; method y() { self!x } }
14:53 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤No such private method 'x' for invocant of type 'C'␤at <tmp>:1␤------> 3C { method !xx() { }; method y() { self!7⏏5x } }␤»
14:53 jnthn Can tell you that private method x doesn't exist
14:53 jnthn Yes, agree the error isn't good
14:54 jnthn Please do file an RT about it. We should be able to catch it at compile time, even.
14:54 ZzZombo Will do.
14:54 babydrop [Coke]: oh, so what about the UTC and stuff?
14:54 babydrop [Coke]: the reason I ask is the next post we have scheduled is the one for Dec 5 and I don't know if kyclark remembers about their post...
14:57 kyclark Yes, sorry, I do.  I’m working on it now.
14:57 yoleaux 13:28Z <babydrop> kyclark: reminder: your Advent post is meant to be published in about 10.5 hours since I write this message...
14:57 babydrop \o/
14:57 kyclark Who do I get it to?
14:57 kyclark ^whom
14:57 kyclark To whom do I get it?
14:57 babydrop kyclark: do you have a wordpress account? I can send you an invite and you'd publish it using the editor
14:58 khw joined #perl6
14:58 babydrop /msg me your email address and I'll send you an invite
14:58 ZzZombo What is the name of the !"m" call syntax? So I could be more technical in the mail.
14:59 jnthn Private method call syntax
14:59 [Coke] babydrop: I don't think we care what time the article drops.
14:59 jnthn Well, indirect private method call syntax with the quotes
14:59 [Coke] "it's Friday somewhere" is probably fine.
15:00 canopus joined #perl6
15:00 babydrop kyclark: "Invitation successfully sent"
15:00 babydrop [Coke]: oh, OK.
15:01 kyclark Got it.  Thanks for having me!
15:01 dalek doc: 23da782 | gfldex++ | doc/Language/classtut.pod6:
15:01 dalek doc: fix example
15:01 dalek doc: review: https://github.com/perl6/doc/commit/23da782327
15:01 synopsebot6 Link: http://doc.perl6.org/language/classtut
15:01 gfldex thowe++
15:02 [Coke] hah! already got a comment about how my cheating on getting the branch name is cheating. :)
15:02 babydrop :)
15:03 rindolf joined #perl6
15:04 ZzZombo Done.
15:05 babydrop So what's thunking?
15:05 babydrop I understand it conceptually, but... what's a 1-sentence explanation?
15:06 ZzZombo RT #130228
15:06 synopsebot6 Link:  https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=130228
15:06 dj_goku joined #perl6
15:07 jnthn babydrop: It's where the compiler takes an expression and turns it into a code object automatically
15:07 babydrop Thanks
15:07 jnthn has $.a = rand; # the rand here is thunked, so that it can be run every time we initialize an object
15:11 setty1 joined #perl6
15:14 pierre_ joined #perl6
15:17 [Coke] the doc build modifies html/css/style.css
15:17 [Coke] (after installing the SASS modules that the build warned were needed)
15:18 [Coke] guessing this isn't happening in prod, since it's adding the external-link icon that I see everywhere locally but not on the site.
15:19 babydrop :/
15:19 babydrop IIRC it'd modify it only if you start the dev web app
15:19 babydrop Well, "modify"... It merelly converts asset/sass/style.sass to that file
15:20 [Coke] yes. but it shouldn't be doing that.
15:20 [Coke] (and, ideally, local and the dev site should be using the same toolset, but that's a different issue.)
15:21 babydrop Right, the build should generate that file instead of it being stored in the repo
15:21 [Coke] modify - it's a file that's checked in. it's changed. that's modifying. no scare quotes needed. :)
15:21 [Coke] we're on teh same page, ok. :)
15:25 dalek doc: c812821 | coke++ | / (3 files):
15:25 dalek doc: fix typos, learn code snippet
15:25 dalek doc: review: https://github.com/perl6/doc/commit/c812821b83
15:25 [Coke] docs. community page. bare minimum, larry's quote about the rewrite, and a mention of this IRC channel. what else?
15:26 babydrop m: subset Foo where { say "checkin..."; $_ }; my Foo $x = 0;
15:26 camelia rakudo-moar 843a6b: OUTPUT«checkin...␤Type check failed in assignment to $x; expected Foo but got Int (0)␤  in block <unit> at <tmp> line 1␤␤»
15:26 babydrop m: subset Foo where { say "checkin..."; $_ }; sub (Foo $x){}(0)
15:26 camelia rakudo-moar 843a6b: OUTPUT«checkin...␤checkin...␤Constraint type check failed for parameter '$x'␤  in sub  at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
15:26 babydrop So.. why does it run the subset twice?
15:26 babydrop Or more importantly, can I avoid or compensate for it somehow?
15:27 [Coke] sounds like the noisy PROXY issue.
15:30 Tonik joined #perl6
15:32 AlexDaniel m: subset Foo where { say "checkin..."; $_ }; sub (Foo $x){}(‘foo’)
15:32 camelia rakudo-moar 843a6b: OUTPUT«checkin...␤»
15:32 AlexDaniel m: subset Foo where { say "checkin..."; $_ }; sub (Foo $x){}(‘’)
15:32 camelia rakudo-moar 843a6b: OUTPUT«checkin...␤checkin...␤Constraint type check failed for parameter '$x'␤  in sub  at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
15:32 pierre_ joined #perl6
15:33 jnthn It does it twice because the past-path binder doesn't know how to produce decent error messages, so upon a bind failure it just re-runs the bind through the slow-path one that does.
15:33 babydrop Oh
15:33 babydrop There goes my carreer of absusing subsets then
15:35 jnthn Uh...yes, don't do that, it'll end badly :)
15:35 babydrop haha
15:35 jnthn We're potentially even free to run them at compile time if we've got the value to hand :)
15:36 AlexDaniel so… one advent post less? :o
15:37 babydrop AlexDaniel: which one?
15:37 AlexDaniel the one about abusing subsets :P
15:37 babydrop AlexDaniel: I actually was about to nix the core hacking one, but then I remembered about you mentioning it
15:37 babydrop And I kinda still wanna nix it :)
15:37 AlexDaniel :(
15:38 timotimo u nix it, bruh?
15:38 babydrop AlexDaniel: why, does yours depend on mine heavily?
15:39 AlexDaniel I thought it was a great topic for the last day… like a call to action
15:40 babydrop Hm. OK. I'll write it
15:40 babydrop m: my %seen; subset Foo where { %seen{$*THREAD.id ~ .VAR.WHERE}++ ?? (%seen{$*THREAD.id ~ .VAR.WHERE} = 0) !! say "checking... $_"; $_ }; for ^3 { .say; sub (Foo $x){}(42); try {sub (Foo $x){}(0)} }
15:40 camelia rakudo-moar 843a6b: OUTPUT«0␤checking... 42␤checking... 0␤1␤checking... 0␤2␤checking... 42␤checking... 0␤»
15:40 babydrop Al..most
15:43 jnthn That...is not a threadsafe way to use a hash :)
15:44 babydrop oh, right :D
15:45 jnthn (Emit them into a Supplier, and then start react { ... } or whatever to watch and analyze them, maybe...)
15:48 rurban joined #perl6
15:48 timotimo tadzik: how do you feel about adding an "unmarshal-multiple" to JSON::Unmarshal that handles turning a list of hashes into a list of constructed objects?
15:49 timotimo or maybe accepting Positional[MyObjectType] as $obj and using the .of to make it work? and then also support associative even?
15:51 ZzZombo m: sub x(Rat:D subset :: where *>13 $x: Rat:D $y){ put $x+$y};x(1,2);
15:51 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Malformed parameter␤at <tmp>:1␤------> 3sub x(Rat:D7⏏5 subset :: where *>13 $x: Rat:D $y){ put␤    expecting any of:␤        constraint␤        formal parameter␤»
15:52 ZzZombo why don't anon subsets work here?
15:53 timotimo because you can't declare a subset in a signature
15:53 babydrop ZzZombo: omit the `subset :: ` bit
15:53 timotimo why don't you use the normal syntax for that?
15:54 babydrop Well, the subset :: is just part of the problem I see
15:54 skids joined #perl6
15:54 timotimo yeah, it's also in the wrong place
15:54 timotimo the "where" comes after the name of the parameter
15:54 ZzZombo It's from https://gist.github.com/ZzZombo/5caa51f9b​238462d628a5b556920a0d8#file-test-pl6-L38. I wanted to get rid of that named subset declaration.
15:54 [Coke] Day 1. 8 slots left in the advent calendar; first empty slot in 8 days.
15:55 [Coke] also, zoffix is overbooked with 4 slots. give the guy a break.
15:55 * babydrop plugs in http://perl6.party/post/Per​l-6-Types--Made-for-Humans
15:55 ZzZombo I have a suspiction it won't work well when I start actually using the code in multiple classes.
15:56 moritz babydrop++
15:56 moritz is the advent post for tomorrow lined up already?
15:56 timotimo ZzZombo: i have a different suggestion for you
15:56 ZzZombo yes?
15:56 babydrop moritz: kyclark confirmed it will be :)
15:56 timotimo ZzZombo: you should be able to just declare my \TheClass := $class and use that as the constraint
15:56 timotimo no subsets needed at all
15:57 moritz babydrop: thanks
15:57 kyclark Writing it as we speak.
15:57 timotimo also, "where *.isa($class)" is better written as just "where $class", as long as $class is a proper type object and not accidentally an instance
15:57 moritz kyclark++
15:58 moritz kyclark: btw I' noticed that your book page doesn't really tell the reader what the book is about
15:58 moritz kyclark: it talks about bioinformatics and metagenomics, but not about all the "IT stuff" that the book covers
15:58 [Coke] Anyone have an -idea- for an advent post that they are not going to get around to writing?
15:58 gregf_ *bookmarks that link*
15:58 ZzZombo but if accidentally the type will get passed in as the invocant, then it will pass your constraint, yes?
15:59 ZzZombo that construction is a runtime version of $class:D.
15:59 ZzZombo yours is just $class.
16:00 kyclark moritz: I guess I’m still trying to frame it.  Would take any suggestions.
16:01 moritz [Coke]: I don't think we've ad advent post about CSV parsing (using that excellent module), have we?
16:01 moritz *had
16:01 moritz kyclark: I'll think about it, and let you know
16:01 wamba joined #perl6
16:02 moritz [Coke]: otherwise I'm low on ideas myself
16:02 [Coke] I mean, I feel like if it zoffix is willing to do 4, I should at least be willing to do two. :)
16:02 [Coke] s/it//
16:03 cygx joined #perl6
16:05 cygx I can probably take a calender slot, but I'll have to writ some code first
16:05 cygx something along the lines of "Targetting MoarVM: The Wrong Way"
16:05 cygx cf https://github.com/cygx/moar-a​ssembler/blob/master/hello.asm
16:06 [Coke] last open slot is the 21st, plenty of time. :)
16:06 timotimo ZzZombo: won't ThatClass:D work?
16:06 timotimo also, if you want the invocant thing, just write ThatClass:D:
16:06 babydrop huggable: advent
16:06 huggable babydrop, https://github.com/perl6/mu/blob/ma​ster/misc/perl6advent-2016/schedule
16:06 babydrop cygx: ^ book a spot :)
16:07 dj_goku joined #perl6
16:07 dj_goku joined #perl6
16:07 ZzZombo timotimo: but the class comes from a variable $class. You can't write $class nor $class:D in signature.
16:07 ZzZombo m: my $a=Int;sub x($a:D $b?){dd $a,$b};x(4);
16:07 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Invalid typename 'D' in parameter declaration.␤at <tmp>:1␤------> 3my $a=Int;sub x($a:D7⏏5 $b?){dd $a,$b};x(4);␤»
16:08 timotimo that's why i told you to have my \TheClass := $class
16:08 timotimo did you read what i wrote? :(
16:08 ZzZombo I did, did you read my response?
16:09 timotimo yeah, your worry was that it'd have invocant problems
16:09 babydrop [Coke]: are you sure Zoffix is even human? :)
16:09 ZzZombo m: my $c=Int;my \c:=$c:D
16:09 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '$c:D' is not declared␤at <tmp>:1␤------> 3my $c=Int;my \c:=7⏏5$c:D␤»
16:09 timotimo you put a : at the very end to get the invocant
16:09 timotimo m: my \C := Int; my C:D $foo = 10
16:09 camelia rakudo-moar 843a6b: OUTPUT«===SORRY!===␤No compile-time value for C␤»
16:09 timotimo okay, so it doesn't actually work. that's good to know.
16:09 babydrop :)
16:10 dalek mu: 9067b12 | (Will Coleda)++ | misc/perl6advent-2016/schedule:
16:10 dalek mu: claim a day
16:10 dalek mu: review: https://github.com/perl6/mu/commit/9067b1237a
16:10 dalek mu: 5605f5b | cygx++ | misc/perl6advent-2016/schedule:
16:10 dalek mu: take a slot
16:10 dalek mu: review: https://github.com/perl6/mu/commit/5605f5beb0
16:10 babydrop \o/
16:11 cygx let's take something right in the middle
16:11 cygx if it doesn't pan out, I can probably come up with something else
16:12 timotimo ZzZombo: you never tried the \TheClass syntax, that's why i assumed you didn't read what i wrote
16:17 tadzik timotimo: the latter was my plan initially iirc, but typed arrays weren't up to the task then
16:17 tadzik (or something)
16:18 babydrop m: constant C := Int; my C:D $foo = 10;
16:18 camelia rakudo-moar 843a6b: ( no output )
16:18 babydrop m: constant C := Int; my C:D $foo = "meows";
16:18 camelia rakudo-moar 843a6b: OUTPUT«Type check failed in assignment to $foo; expected Int:D but got Str ("meows")␤  in block <unit> at <tmp> line 1␤␤»
16:18 timotimo tadzik: so, will you do it now? we have someone on stackoverflow who could use this feature :)
16:18 tadzik oh :)
16:18 tadzik might, might
16:18 tadzik perhaps tomorrow, I just got back from work and flying to London in a few hours
16:18 firstdayonthejob joined #perl6
16:19 timotimo oh, i see
16:20 timotimo plane flight isn't the right opportunity to do it? ;)
16:20 timotimo you're free to do whatever you like, of course
16:20 timotimo oh, thing is: do we want to actually create a list of the exact type given? including the type constraint?
16:20 timotimo or just "ah they passed in some Positional, maybe the punned role even, we'll just build a list"
16:21 timotimo because i could implement it if i knew how you'd like it to behave, exactly
16:22 tadzik I'm flying ryanair, if there'll be enough room to open my backpack...
16:22 timotimo heh heh
16:22 tadzik I think a typed list would be more in order
16:22 timotimo okay. i wish you a good flight in any case!
16:23 timotimo typed lists of course have the disadvantage that they won't allow you to append more stuff after creating the initial thing
16:23 kyclark I’m having a bit of trouble pasting in a block of code into the Wordpress site for my Advent entry.  Any suggestions?
16:23 tadzik flight choice is the unfortunate combo of $gf wanting to fly cheaply but refusing to be gifted a ticket %)
16:23 timotimo give up on life. wordpress is the most terrible thing in existence :(
16:23 babydrop kyclark: my plan is to write it in markdown, paste it into a github gist, and copy the generated markup and use that in wordpress
16:24 tadzik wha, typed lists are immutable?
16:24 timotimo no
16:24 tadzik kyclark: last I tried wordpress had a wysiwig editor an an html editor, with the latter working mostly ok
16:24 timotimo you can't append *other* stuff ;)
16:24 tadzik oh
16:24 timotimo some people just like to end all their lists with a Flourish.new()
16:24 tadzik I guess that's fair, if that's how you specced your class to unmarshal into :)
16:25 timotimo inside classes, you of course have to rely on the .of of the attribute if it's listy to figure out what class to unmarshal into
16:25 tadzik yep
16:26 timotimo so i'll come up with some test cases that'll rely on unmarshal($jsondata, Positional[MyClass]) or something
16:26 timotimo and maybe even try to implement it
16:26 tadzik awesome :)
16:32 kyclark gist -> WP worked.  Thanks, takzik!
16:45 tadzik yw :)
16:45 tadzik glad it still works
16:47 dalek doc: d82871b | coke++ | doc/Language/ (2 files):
16:47 dalek doc: Add a community page.
16:47 dalek doc:
16:47 dalek doc: Resolves #1001, minimally
16:47 dalek doc: review: https://github.com/perl6/doc/commit/d82871b181
16:48 kent\n joined #perl6
16:50 telex joined #perl6
16:53 babydrop What do we call the multi resolution criteria?.... "specificity"?
16:53 babydrop Int is more specific than Any?
16:54 timotimo narrowness
16:54 babydrop Ah. Thanks :D
16:54 timotimo sure
16:56 timotimo tadzik: i'm failing to actually make the thing work
16:56 timotimo i seem to be calling _unmarshal($_, $obj.of) for @(data), which gives me the little hashes for each entry in the json list, but it's not creating Dog, it's creating Any
16:57 timotimo but dd $obj.of gives me Dog
16:58 timotimo ah, i see my mistake
16:58 AlexDaniel [Coke]: wow, that's a whole new level of minimalism :)
16:58 AlexDaniel [Coke]++
16:59 wamba joined #perl6
16:59 babydrop :D
16:59 tadzik timotimo: glad to be a duck :)
17:01 ZehCnaS34 joined #perl6
17:02 timotimo hah
17:02 timotimo my stuff is finished
17:02 timotimo got time to review it quickly?
17:03 babydrop AlexDaniel: what was the thing with help in your bots that involved subset specificity?
17:03 babydrop Imma try and solve it
17:04 babydrop bisectable6: source
17:04 bisectable6 babydrop, https://github.com/perl6/whateverable
17:05 AlexDaniel babydrop: https://github.com/perl6/whatever​able/blob/master/Evalable.p6#L32
17:05 jnthn AlexDaniel: Guess you noticed I put a fix in for the zeroed work pass target thingy yesterday? Please let me know if whateverables still continue to experience it after upgrading to latest Rakudo, but since it was thanks to a bug in the guts behind Proc::Async I'm hopeful it's nailed.
17:06 AlexDaniel jnthn: yeah, we did notice. No, the problem did not vanish completely
17:06 AlexDaniel but the error about zeroed work pass target is gone, I think
17:06 AlexDaniel unicodable6: { say 42; False }
17:07 jnthn Yes, that's the one I was talking about. :)
17:07 lizmat jnthn AlexDaniel: same for HARNESS_TYPE=6 make spectest
17:07 unicodable6 AlexDaniel, Oops, something went wrong!
17:07 AlexDaniel unicodable6: { say 42; False }
17:07 AlexDaniel MasterDuke: do you have any additional info?
17:07 aries_liuxueyang joined #perl6
17:08 jnthn lizmat: Yeah, I suspect the next issue is grammar/regex compilation related.
17:08 babydrop m: https://gist.github.com/zoffixznet​/d41b3aa444144c2ab3322ad2b85db481
17:08 camelia rakudo-moar 843a6b: OUTPUT«Just foos...␤»
17:08 jnthn Will have to look into that
17:08 babydrop AlexDaniel: ^ the goal is for that to print "Meow meow!" right? :)
17:08 timotimo seems like tadzik already left for the plane
17:08 babydrop as in that method needs to be narroer
17:08 dj_goku joined #perl6
17:08 dj_goku joined #perl6
17:08 AlexDaniel babydrop: yes
17:08 tadzik no, I'm here
17:08 babydrop AlexDaniel: Challange Accepted!
17:09 tadzik I didn't notice your message tho :)
17:09 babydrop :D
17:09 tadzik will review on the planeport or so tho :) gotta pack and things
17:10 babydrop Yikes... my subset article is already 2,500 words :O
17:10 gfldex maybe you should publish a subset of your subset article?
17:10 babydrop gfldex++
17:14 [Coke] https://gist.github.com/coke/28​01691cb9578225581f92e2b5272f76 - any idea which of these I need to run Inline::Python?
17:14 timotimo none of those seem correct
17:15 timotimo could it be the python package already comes with Python.h, but it's in some place that I::P isn't looking at?
17:16 babydrop m: https://gist.github.com/zoffixznet​/53dcd746a5e3c639b9faa1848417b557
17:16 camelia rakudo-moar 843a6b: OUTPUT«Meow meow!␤»
17:16 [Coke] timotimo: ooh, that's a clue.
17:16 babydrop AlexDaniel: hackety hack :D Challenge won :)
17:18 babydrop oh
17:18 babydrop m: https://gist.github.com/zoffixznet​/ad2bfbddf71840623d07ebaddc4055da
17:18 camelia rakudo-moar 843a6b: OUTPUT«Meow meow!␤»
17:18 babydrop I thought I tried that and failed, but turns out that works too
17:19 babydrop Now a bonus challenge: make them all effectively type contraint for Str :)
17:19 pyrimidine joined #perl6
17:19 [Coke] DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib GIT_PROTOCOL=https panda install Inline::Python still not right.
17:21 babydrop hmmm
17:22 [Coke] ... ah. another clue, one sec.
17:22 babydrop m: https://gist.github.com/zoffixznet​/a878c68fa39f08653b10ee44a7e82794
17:22 camelia rakudo-moar 843a6b: OUTPUT«Meow meow!␤»
17:22 babydrop Bonus challenge won :)
17:23 [Coke] I needed this: sudo cp /opt/local/bin/python2.7-config /opt/local/bin/python2-config
17:23 [Coke] so Inline::Python might need to look for a few more -config scripts.
17:26 babydrop AlexDaniel: c'mon man. I expected applause and to be carried around, while the crowd cheered.
17:26 babydrop or be poured champagne onto?
17:26 babydrop No?
17:26 babydrop Fine!
17:26 babydrop :)
17:26 AlexDaniel babydrop: well, I don't see a PR :P
17:26 babydrop lol
17:27 * [Coke] opens a ticket.
17:28 ugexe there are sober children in Africa and you want to just pour champagne on people?
17:29 domidumont joined #perl6
17:33 davercc joined #perl6
17:33 Actualeyes left #perl6
17:36 labster joined #perl6
17:41 [Coke] AMAZING how much faster inline::python is than shelling out. :|
17:42 davercc left #perl6
17:43 babydrop .oO( or is it... amazing how much slower shelling out is than... )
17:44 kyclark By default, the variables used in a for loop, e.g., “for <foo bar> -> $s” are immutable, right?  The $s, that is.  If so, where is this covered?
17:44 babydrop kyclark: it's just a normal block
17:44 geekosaur -> makes it read-only, it specifies a one-way relationship. iirc you can use <-> for 2-way
17:44 babydrop m: -> $s { $s = 42 }($)
17:44 camelia rakudo-moar 843a6b: OUTPUT«Cannot assign to a readonly variable or a value␤  in block <unit> at <tmp> line 1␤␤»
17:45 babydrop m: <-> $s { $s = 42 }($)
17:45 camelia rakudo-moar 843a6b: ( no output )
17:45 babydrop m: -> $s is rw { $s = 42 }($)
17:45 camelia rakudo-moar 843a6b: ( no output )
17:45 geekosaur (which requires the things you send into the block be lvalues though. I don't think you can use a shorthand for "is copy")
17:45 cibs joined #perl6
17:46 babydrop kyclark: so it'd be covered whereever blocks/subs are covered.
17:46 * [Coke] adds X<|Environment Variables> to doc/Programs/00-running.pod6, but it still doesn't show up in search. hurm.
17:46 geekosaur if you need that, you need to use an anonymous sub with `is copy' parameters instead
17:46 babydrop you can do that on a block too
17:46 babydrop m: for <foo bar> -> $s is copy { $s = 42; say "zomfg! what has he done!" }
17:46 camelia rakudo-moar 843a6b: OUTPUT«zomfg! what has he done!␤zomfg! what has he done!␤»
17:48 girafe joined #perl6
17:48 * babydrop finishes first draft of subsets article
17:49 pyrimidine joined #perl6
17:49 babydrop 3000 words. ~3 hours of writing.
17:49 * babydrop feels less bad about booking 4 spots now :D
17:50 * babydrop &
17:54 babydrop kyclark: BTW, that of course means you can make implic signatures and do unpacking and all kinds of crazy stuff:
17:54 babydrop m: for <a b c  d e f> { dd [$^a, $^b, $^c] }
17:54 camelia rakudo-moar 843a6b: OUTPUT«["a", "b", "c"]␤["d", "e", "f"]␤»
17:54 babydrop m: for %(:42a, :72b) -> (:$key, :$value){ dd [$key, $value] }
17:54 camelia rakudo-moar 843a6b: OUTPUT«["a", 42]␤["b", 72]␤»
17:54 babydrop etc
17:55 babydrop s/implic/implicit/
17:55 rurban joined #perl6
17:56 domidumont joined #perl6
18:03 thowe joined #perl6
18:09 dj_goku joined #perl6
18:09 dj_goku joined #perl6
18:14 itaipu joined #perl6
18:19 thowe It was mentioned in this channel recently that the kickstarter project book Learning Perl6 would have a coding style described as being a Python-like bracketing style, and that this was not preferred (at least) by some.  I was wondering if someone could explain that to me (the style, and contrasting preferred style).
18:20 thowe Or, perhaps better yet, point me to an example of what is currently considered good Perl6 style.  I plan to start writing some perl6 and I want to form good habits early...
18:20 babydrop thowe: most stuff in https://github.com/rakudo/rakudo/tree/nom/src/core is good style :D
18:21 pyrimidine joined #perl6
18:21 babydrop thowe: but I don't think there's anything uber cannonical yet. I prefer to use .foo: method calls and pass int named args as :42bar
18:21 babydrop What's "good style" really?
18:21 El_Che babydrop: nqp code could be somewhat confusing for someone not doing nqp
18:22 babydrop El_Che: read it as a subroutine call... the rest is all Perl 6
18:23 gfldex thowe: examples: https://github.com/jnthn?tab=repositories
18:24 thowe babydrop, well, "good style" is subjective, like "good health", but like health it is still easy to tell good from bad.  Also, communities tend to develop certain standards that, when used, help others absorb your code better.
18:24 El_Che there is good style and (fuzzy) conventions
18:25 El_Che e.g. there is nothing wrong about $var_name, while perl6 core people tend to use $var-name
18:25 AlexDaniel no space after a comma… meh
18:25 babydrop I'd call $var_name a bad Perl6 style tho
18:25 thowe I'm still curious about the comment about python bracket style that Brian Foy must be known for and what it is so that I can spot it.  Also, what is preferred to it.
18:25 El_Che babydrop: why?
18:26 grondilu joined #perl6
18:26 El_Che there is nothing in the language that discourage it and the code is as readable as with -
18:26 AlexDaniel thowe: this kind of thing: https://github.com/briandfoy/perl6-chemistry-elem​ents/blob/master/lib/Chemistry/Elements.pm6#L175
18:26 El_Che it's more of a cultural thing
18:26 babydrop El_Che: because core stuff uses kebob-case so if you're not using it everywhere, you have incosistent casing in your code and if you publish such an API as a module, you're just propagating the swine casing
18:27 El_Che babydrop: if Perl6 gets into that situation it will be a luxury problem :)
18:27 thowe AlexDaniel, Ah.  Yeah, I tend to close the bracket at the same column as the opening statement.
18:27 babydrop El_Che: which situation?
18:27 El_Che babydrop: a zillion of inconsistent apis
18:28 babydrop :S
18:28 babydrop El_Che: I'm not sure where you got that from.
18:28 thowe Although, for C++, I got in the habit of opening the brackets on their own line, also at the same column.  Seems to add readablity to C++ and perhaps Java.  I think I picked that up from some Qt guys.
18:28 babydrop El_Che: we already have DBI that provides half the methods snake_cased and other half kebob-cased
18:28 El_Che babydrop: atm I'll settle with incosistent naming between libs for more libs
18:28 AlexDaniel sub foo(… … … … …) {
18:28 AlexDaniel bar;
18:28 AlexDaniel } # like this? :P
18:29 El_Che thowe: I hate that style on java
18:29 El_Che thowe: yet again, cultural
18:29 thowe AlexDaniel, no
18:29 kyclark OK, I’ve got 1800 words on bioinformatics.  Would anyone like to proofread?
18:29 babydrop kyclark: sure
18:29 thowe AlexDaniel, sub foo(… … … … …) {
18:29 kyclark Do I need to do anything special, or can you see it?
18:29 babydrop Bioinformatics! That's what I studied in the college for
18:30 thowe bar;
18:30 synopsebot6 joined #perl6
18:30 thowe }; <- like this
18:30 babydrop heh
18:30 thowe same column as s in "sub".
18:30 El_Che bioinformatics. Is that the field when they connect your brain directly to the matrix?
18:30 thowe is my habit anyway.
18:31 babydrop thowe: but even "};" is not Perl 6-ish :) It's a supersticious semincolon we call it
18:31 AlexDaniel I'd love to see some justification for what Brian does
18:31 AlexDaniel especially if he is going to do that kind of thing in a book /o\
18:31 thowe babydrop, Oh, yeah, I don't do a ";" there.
18:32 babydrop AlexDaniel: I dunno, I look forward to the day when people will try to convince me my code is bad because it's not like in Learning Perl  :)
18:32 thowe AlexDaniel, I don't know that he is, I think it was suggested that he would as it seems to be his habit.
18:32 thowe heh
18:33 babydrop kyclark: I don't see it... what's the URL?
18:33 babydrop kyclark: oh wait, got it
18:34 kyclark Cool.  Nothing like a deadline to light a fire under my ass.
18:34 thowe Getting a start in Perl6 will be like coming full circle for me...  Interest in Perl6 is what got me started in Perl5 after having mostly done Ruby.  Perl6 looked like a better Ruby than Ruby to me at the time.
18:34 nowan joined #perl6
18:34 thowe I think that's a non-typical path to have taken...
18:35 kyclark I assume someone else will pull the trigger to publish the post tomorrow?
18:36 babydrop kyclark: you can schedule it
18:36 kyclark Fancy.
18:37 kyclark Scheduled for midnight.
18:39 babydrop kyclark: I assume "contigs" is a thing? :)
18:39 kyclark Contiguous bits of sequence.
18:39 kyclark I should explain that.
18:40 dwarring joined #perl6
18:42 pyrimidine kyclark++ # perl6 bioinformatics advent post
18:43 pyrimidine kyclark: pretty great to see you advocating for perl6 in this domain :)
18:43 kyclark Perl has a long, glorious history in bioinformatics (cf my old boss’s https://www.foo.be/docs/tpj/is​sues/vol1_2/tpj0102-0001.html)
18:44 pyrimidine yes, I know # I'm aka CJFIELDS (CPAN)
18:44 kyclark It’s only natural for Perl 6 to take up the mantle.  I also want to advocate for Perl 6 as a beginner’s language.
18:44 kyclark Ah, well, I can’t keep track of everyone’s nicknames. :-P
18:44 kyclark :-)
18:45 pyrimidine kyclark: np
18:45 kyclark One day I’ll contribute something to BioPerl6!
18:45 kyclark I’m quite impressed by the start you have. I used it a bit in class this fall.
18:45 pyrimidine I think you are already a committer, will have to check that
18:46 kyclark Yes, I think you gave me the right, but I haven’t done anything.
18:46 kyclark I have to shower and get to class now!
18:46 unicodable6 joined #perl6
18:47 pyrimidine have fun!  re: bioperl6, s'okay, I have been a bit tied up myself and mainly tinker with it (but have some ideas...)
18:49 domidumont joined #perl6
18:51 * [Coke] finally sees an example of bdf's bracketing style. me no likey.
18:51 babydrop kyclark: my notes: https://gist.github.com/zoffixznet​/b419d7c3c8a74c0e91f773a553c6c545
18:51 FROGGS joined #perl6
18:56 FROGGS o/
18:56 babydrop So.. when are we ganging up on bdf about the bracketing style? Who's got the bats?
18:56 babydrop \o\
18:57 FROGGS hi babydrop
18:57 hanekomu left #perl6
19:00 AlexDaniel babydrop: uh, I'm confused. How can I import Message from IRC::Client::Message whithout having to type “IRC::Client::Message” everywhere?
19:01 babydrop huh?
19:01 babydrop What Message?
19:02 AlexDaniel the one that is passed to irc-to-me ?
19:02 babydrop It's IRC::Client::Message
19:03 babydrop What are you trying to do?
19:03 AlexDaniel babydrop: your champagne thing
19:04 Coffeeframe joined #perl6
19:04 Coffeeframe Hello
19:04 AlexDaniel hi
19:04 babydrop Just `use IRC::Client::Message;` in the help file and put IRC::Client::Message as a type constraint on the multi that prints help
19:04 AlexDaniel babydrop: that's my question! How can I type just “Message”?
19:04 babydrop That's the only place that you'd need to have it at
19:04 babydrop AlexDaniel: ummm... constant Message = IRC::Client::Message; I guess
19:05 babydrop Like here: https://github.com/zoffixznet/perl6-IRC-Clien​t/blob/master/lib/IRC/Client/Message.pm6#L16
19:06 AlexDaniel I see…
19:06 babydrop But that's nothing to do with my champagne thing :P
19:07 babydrop I don't get why you need just Message. You only need it once, on thi sline: https://github.com/perl6/whatever​able/blob/master/Evalable.p6#L32
19:08 babydrop well, for each robot
19:08 AlexDaniel babydrop: that's exactly where I don't need it
19:08 babydrop Oh right :)
19:09 pyrimidine babydrop kyclark: added a quicky example script for using BioPerl (p5) from Perl6
19:10 pyrimidine kyclark: if you want to use it, that is.  that would be on the gist by babydrop in the comment https://gist.github.com/zoffixznet​/b419d7c3c8a74c0e91f773a553c6c545
19:11 babydrop m: constant Z = Int; multi foo(Z $){ say "here" }; multi foo($) {say "there" }; foo 42
19:11 camelia rakudo-moar 843a6b: OUTPUT«here␤»
19:11 dj_goku joined #perl6
19:11 thowe this "Why hasn't Perl 6 taken off yet?" hacker news thread has got some gold in it.
19:12 pyrimidine thowe: link?
19:12 thowe https://news.ycombinator.com/item?id=12888784
19:12 babydrop thowe: gold like what?
19:12 babydrop The poo-coloured gold? :)
19:13 pyrimidine ah yes, I remember this one.
19:13 * babydrop doesn't feel like coming back to that thread after the shitstorm from last time...
19:13 babydrop A group of ignorant apes flinging poop at each other is what it looks like to me.
19:14 pyrimidine babydrop: pretty much
19:15 babydrop :)
19:16 Coffeeframe Silly question, I'm on ArchLinux, and there's a couple rakudo packages on the AUR, which one should I be using?
19:17 geekosaur and this differs from most geek (or, for that matter, people) comment threads how?
19:17 babydrop geekosaur: no how, which is why those threads are a waste of time :)
19:17 babydrop Coffeeframe: the one with the biggest version number I guess :)
19:18 babydrop Coffeeframe: what are the names of choices?
19:18 Coffeeframe babydrop: https://aur.archlinux.org/​packages/?O=0&amp;K=rakudo
19:19 babydrop :o
19:19 thowe babydrop, hm, I don't know if I can link to a particular comment...  But it is an interesting study in finding logic to justify
19:20 thowe babydrop, ... justify whatever opinion you come to first
19:20 babydrop Coffeeframe: hm, rakudo  2016.11-1 looks like the best choice there.
19:20 Coffeeframe tbh I should probably just compile from source
19:20 Coffeeframe thanks
19:20 labster joined #perl6
19:20 babydrop Coffeeframe: sure, that would work too. Just get the Star from http://rakudo.org/downloads/star
19:20 thowe also, there are some great little bits of insight in how people think of programming languages, history, whatnot.  Also some neat little code examples.
19:21 thowe It's just kind of fascinating to read the exchanges; differing view points colliding.
19:21 babydrop Coffeeframe: the `rakudo` package would be compiler only and you'd also need to install a module manager manually with it. The rakudo-star package listed there is ancient.. .even before our first stable release
19:21 thowe babydrop, sorry for the delay in my comment, work got in the way.
19:23 babydrop thowe: I think a lot of those "points" come from people entirely ignorant of the core development process.
19:23 babydrop ...or the number of people involved....
19:23 babydrop ...or their average hourly pay rate for their labour...
19:24 babydrop ...or the reasons why they do this...
19:24 thowe babydrop, 99.99% of users are going to be ignorant of the core development process, I'm one of them.  I think those impressions matter.
19:25 thowe still, I think the comments from people who are pro Perl6 are great here as well.
19:25 giraffe joined #perl6
19:26 rodarmor joined #perl6
19:27 thowe I'm most fascinated by the stuff here that I just can't get behind...
19:27 babydrop thowe: my problem is mostly not with "users" but with people who throw up inane material like "They should just rename it" or "where's the big marketing event for the release?"
19:27 rurban joined #perl6
19:28 Ulti meh just ignore it, its just the negative version of bike shedding... it makes peope feel like they know something to vomit up that stuff
19:28 babydrop Yeah, I was hoping to...
19:28 babydrop thowe-- for bringing that awful thread back again
19:28 dalek whateverable: 7cd3281 | (Aleks-Daniel Jakimenko-Aleksejev)++ | / (6 files):
19:28 dalek whateverable: Substitute one hack for another
19:28 dalek whateverable:
19:28 dalek whateverable: Having a stricter signature bumps up its priority, so there is no need
19:28 dalek whateverable: for the previous hack.
19:28 dalek whateverable: review: https://github.com/perl6/wha​teverable/commit/7cd32819ae
19:28 wamba joined #perl6
19:28 babydrop :) thow++ # fine fine...
19:29 AlexDaniel babydrop: thanks
19:29 thowe its thowe not thow ;P
19:29 thowe sorry, it was new to me...
19:29 babydrop thowe++ fine fine.
19:30 * Ulti looks around at all the new faces
19:30 babydrop thowe: well, it's not your fault I know. It's just when that thread first went popular I found out a bunch of people were talking shit about me personally due to the comments on that thread.
19:30 Ulti did people just change nick or is this a load of new peeps?
19:30 masak Ulti: ...and you are? :P
19:30 rurban joined #perl6
19:31 babydrop Ulti: there's a bunch of new peeps
19:31 * masak .oO( get off my lawn )
19:31 AlexDaniel Ulti: no, it's just Zoffix having a lot of fun
19:31 masak Everyone is Zoffix
19:31 thowe oh, do you have comments on there?
19:31 babydrop AlexDaniel: thowe and Coffeeframe aren't Zoffix
19:31 Ulti one of many fans apparently
19:31 AlexDaniel babydrop: and everyone else is. OK
19:31 * geekosaur still isn't zoffix either...
19:31 thowe Who is Zoffix?
19:32 babydrop thowe: a very famous person.
19:32 babydrop We love him very much.
19:32 Ulti the pluritude that is Zoffix
19:32 babydrop hehe http://www.urbandictionary.​com/define.php?term=Zoffix
19:32 kurahaupo joined #perl6
19:33 AlexDaniel “by sexy-coder-girl”, yeah
19:33 thowe I'm not sure I am new, I know a few people in Perl5 land and I have now been to 2 conferences :)  I'm just not interested because I'm really just a hobbyist.
19:33 Ulti I've been to 0 conferences and have been writing p5 since about 2004
19:34 thowe Bruce Gray took a picture of my and captioned it "I break things".  I was very amused.  I was also at Damien's class on functional programming.
19:34 Ulti p6 since about 2010 which worryingly makes me an early adopter
19:34 thowe er s/my/me/
19:35 Ulti I think there is increasingly outside echo chamber Perl 6 usage in the wild which is really nice to see
19:35 thowe Perl people are almost universally super nice -- I don't know how you do it.
19:35 prammer joined #perl6
19:35 Ulti its testament to where rakudo on moar is at the moment perf and reliability wise
19:36 babydrop \o/
19:36 thowe er maybe I should say "we".
19:36 AlexDaniel \o/
19:36 babydrop AlexDaniel: is it really a hack tho?
19:36 Ulti its when you say we that you understand why its nice
19:36 AlexDaniel babydrop: of course it is
19:37 babydrop AlexDaniel: the resolution order felt sane to me when I was writing my examples
19:37 babydrop AlexDaniel: I mean, as the answer to "how do I force the parent to resolve first" it's pretty clean
19:37 thowe they're even almost always nice to me, and I'm annoying, so that's special.
19:37 AlexDaniel babydrop: are there any tests for resolution order?
19:37 babydrop AlexDaniel: there.... can be :P
19:37 Ulti naw I keep missing kylark, I guess they must be in a US time zone?
19:39 AlexDaniel babydrop: I don't think so. IMO that's completely the business of the compiler, I should not expect anything
19:39 AlexDaniel babydrop: unless somebody introduces an actual feature to control the priority
19:40 AlexDaniel babydrop: and #123577 should be resolved somehow too
19:40 synopsebot6 Link:  https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=123577
19:40 babydrop AlexDaniel: that IS a feature!
19:41 AlexDaniel *shrug*
19:41 babydrop AlexDaniel: what do you mean expect? You *should* expect the presicely defined resolution
19:41 AlexDaniel why?
19:41 babydrop :S
19:41 babydrop AlexDaniel: because otherwise it's useless and unpredictable?
19:42 FROGGS are we talking about resolution order of subs and methods?
19:42 FROGGS err, multis so to say?
19:42 babydrop FROGGS: the multi resolution yeah, specifically how it pertains to resolving multis provided by class and its subclasses
19:42 AlexDaniel babydrop: the way it changes just because somebody slapped “Message” is not exactly what I'd call predictable
19:43 AlexDaniel babydrop: it is a bit too implicit, I think
19:43 FROGGS the rules are written down in the synopsis fwiw
19:43 AlexDaniel oh, link?
19:43 FROGGS gimme a minute
19:43 babydrop AlexDaniel: You made the candidate narrower, of course it's change!
19:43 kyclark joined #perl6
19:44 babydrop m: multi foo (Int $x) { say "here" }; multi foo($x) { say "there" }; foo 42
19:44 camelia rakudo-moar 843a6b: OUTPUT«here␤»
19:44 babydrop AlexDaniel: to me, what you're saying sounds like "Hey look! it works just because someone slapped an Int over there"
19:44 babydrop It's perfectly predictable, just like with the champagne thing
19:45 babydrop The Int (or Message) gives more narrowness than the narrowness provided by the thing coming from a subclass
19:45 AlexDaniel yea, that's exactly what I'm saying. Because irc-to-me is always called with Message
19:45 babydrop The above code is also called with an Int
19:45 babydrop also always calledd
19:46 AlexDaniel yea
19:46 babydrop Yeah.
19:46 FROGGS there is S12:1157, but I thought there was something more specific
19:46 synopsebot6 Link: http://design.perl6.org/S12.html#line_1157
19:46 babydrop So why are you OK with the above Int type contraint but not with Message type constraint?
19:46 tadzik timotimo: I merged things! \o/
19:47 thowe I'm curious about the motivation to post a comment about how you are not going to be using something (Perl6 in this case).  It's never occurred to me to comment in a thread about Python or TCL to tell people it has no appeal to me.  I have to assume there is some kind of emotion that Perl6 is triggering to make someone say "yeah, well, I'm not gonna use it!  Hmf!"
19:47 tadzik I appreciate a Panda reference, as a spirit animal of sorts :)
19:47 tadzik sounds like someone expressing their insecurity
19:48 AlexDaniel babydrop: that's not what I'm saying. I'm saying that it would be better to have an option to set the priority manually, so that it becomes explicit and readable
19:48 thowe who are they trying to convince?
19:48 babydrop thowe: um, I take it you never used YouTube? :)
19:48 thowe I've watched things on YouTube, is that using it?
19:48 babydrop thowe: people talk shit about everything. This is no different. They call something crap to feel superiour.
19:48 tadzik hah, right, there's that
19:48 tadzik "I'll say something is stupid, people will think I'm smart!"
19:49 tadzik stupid people, maybe
19:49 AlexDaniel .oO( “I am crap, I am superior” )
19:49 thowe That must be a busy job...  Finding everything that is crap and expressing your opinion on it.
19:49 grondilu joined #perl6
19:49 stmuk_ to dislike a language you have to use it!
19:49 babydrop "I don't know Perl 6, but if I call it utter failed crap, I don't have to worry about being seen as 'weak' for not knowing something or worrying about my job prospects"
19:50 masak tadzik: that's right! all those stupid people, needing to call stuff stupid in order to feel superior! so stupid! :P
19:50 tadzik I know right!?
19:50 AlexDaniel to be honest, that's what I did before I started loving Perl 6. I did not say it out loud, but I did think this way, yeah
19:50 masak tadzik: we would never do that!
19:50 babydrop huggable: php
19:50 huggable babydrop, nothing found
19:50 babydrop huggable: php sucks
19:50 huggable babydrop, http://blog.aurynn.com/contempt-culture
19:50 tadzik no, we're the good ones, but others are wrong and stupid!
19:50 babydrop thowe: ^ that's a good read on the topic :)
19:50 masak tadzik: that almost follows by definition
19:51 tadzik I love modern web, where images load faster than text
19:51 babydrop hah
19:52 babydrop AlexDaniel: what would that look like?
19:52 thowe as someone who has had to write PHP: PHP is stupid and the people who like it are stupid.
19:52 babydrop (the manual priority thing)
19:52 babydrop thowe: I like PHP :(
19:52 tadzik as someone who writes Perl: go away, less programmers means more money for me, shoo
19:53 thowe babydrop, and that's why I am better than you
19:53 babydrop hahaha
19:53 thowe hahahhaa
19:54 masak hahhhhh... *cough*
19:55 thowe HA HA HA :|
19:56 babydrop 𝐇𝐀 𝐇𝐀 𝐇𝐀
19:56 babydrop I win!
19:56 thowe you win
19:56 * babydrop collects the coins
19:57 domidumont joined #perl6
19:57 * masak .oO( на на на )
20:04 wamba joined #perl6
20:06 [Coke] HÁ HA HA
20:06 xylixy joined #perl6
20:06 [Coke] awww, something in my chain to IRC is losing all my combining chars. :|
20:07 [Coke] wonder if I have to enable tmux to do something.
20:07 xylixy i'm new to perl6. why doesn't this compile 'aaaa' ~~ g/a/;
20:08 FROGGS m: say 'aaaa' ~~ m:g/a/;
20:08 camelia rakudo-moar 843a6b: OUTPUT«(「a」 「a」 「a」 「a」)␤»
20:08 [Coke] set -g utf8
20:08 [Coke] set-window-option -g utf8 on
20:08 FROGGS xylixy: :g is an adverb you can put after the m or after the first slash
20:08 xylixy ok, i guess that with plain // it can have no options
20:08 nine [Coke]: come on, it's 2016. You cannot expect Unicode support out of the box after just 28 years
20:08 FROGGS m: say 'aaaa' ~~ /:g a/;
20:08 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized regex modifier :g␤at <tmp>:1␤------> 3say 'aaaa' ~~ /:7⏏5g a/;␤    expecting any of:␤        term␤»
20:09 FROGGS errr, or not
20:09 babydrop Not for :g
20:09 FROGGS ahh true
20:09 babydrop Since it affects how the match is done, rather than match itself
20:09 FROGGS cannot work for :g inside of a regex
20:09 xylixy thx
20:09 FROGGS m: say 'aaaa' ~~ /:i A/;
20:09 camelia rakudo-moar 843a6b: OUTPUT«「a」␤»
20:09 pyrimidine joined #perl6
20:09 FROGGS these work inside and outside
20:09 [Coke] nine: sadly, I had it working all fine in screen :|
20:09 babydrop AlexDaniel: I'm doing hackety stuff!!
20:10 AlexDaniel babydrop: dunno, multi(4) sub foo {} ? :-/
20:10 babydrop AlexDaniel: and you'd consider that readable? :S
20:10 babydrop AlexDaniel: wtf is 4?
20:10 babydrop What does it do?
20:10 AlexDaniel babydrop: nope :S but can't think of anything else
20:11 babydrop multi foo () is important {... }
20:11 babydrop ala CSS
20:11 babydrop But that's not the hackety stuff I'm doing :)
20:11 AlexDaniel what if you have one that is even more important?
20:11 [Coke] ... call them different names so you can be sure you're calling the right one?
20:12 [Coke] (I missed the original problem statement here.)
20:12 dj_goku joined #perl6
20:12 dj_goku joined #perl6
20:12 babydrop AlexDaniel: same as with CSS. You'd have to make it more specific by other means, with the intent that you're not meant to use `important` all too often.
20:12 babydrop But it can also take an arg of priority, I suppose
20:12 kurahaupo__ joined #perl6
20:13 babydrop And I'm not saying that in a way that we should add that to core... :) That's just musing
20:13 babydrop And my hackety is about trying to see if that's possible from module space :)
20:15 ssm joined #perl6
20:16 Coffeeframe left #perl6
20:17 AlexDaniel [Coke]: the problem is that sometimes in a subclass you want to have a similar signature but want it to have less priority over the one that is in a parent
20:17 AlexDaniel [Coke]: additionally, see #123577. It is a slightly different issue, but kinda related
20:17 synopsebot6 Link:  https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=123577
20:17 babydrop Well, "problem"
20:17 babydrop There's a method to do it, but AlexDaniel does not find it palatable :)
20:18 AlexDaniel yea, because you have to change your parent class
20:18 babydrop hmmm
20:18 cpage_ joined #perl6
20:19 babydrop You don't, if the parent class has a type constraint
20:19 * babydrop tries another trick if it doesn't...
20:20 AlexDaniel what's needed, actually, is “is not important”
20:20 [Coke] if it's not meant to override, and you want it to have the same signature, don't give it the same name.
20:20 AlexDaniel but that's kinda not going to work
20:20 [Coke] that seems very obvious to me, so I must be missing something.
20:20 [Coke] crap. I'm going to have to give up tmux and go back to screen.
20:21 babydrop [Coke]: the API uses the multi candidates to choose which one to call, so using a different name is not an option
20:21 AlexDaniel [Coke]: well, see this as an example: https://github.com/perl6/whateverable/commi​t/7cd32819ae4471e70b7ec35bdec8128a5759f60f
20:21 timotimo tadzik: did you also bump the version?
20:21 AlexDaniel [Coke]: and feel free to point out what is wrong there
20:22 [Coke] "don't use where clauses to try to set precedence", I guess.
20:22 [Coke] (but that's a half baked answer. I'll give it some more thought later.)
20:23 babydrop [Coke]: there is an answer to be described in my Advent article :)
20:23 [Coke] for that kind of thing, I think you want to try all the methods in the hierarchy until someone says "I've processed it", which sounds like something other than method inheritance to me.
20:23 babydrop The only niggle is it doesn't work when there's no type constraint on the parent class's method :)
20:23 babydrop "Ambiguous call to 'stuff'; these signatures all match:"
20:23 babydrop hmm
20:24 babydrop Actually, that may be a bug
20:24 babydrop Because one is a regular method stuff ($) {} and the other is subset MySubset of Mu where { $_ ~~ Str }; method stuff (MySubset)
20:24 prammer joined #perl6
20:24 babydrop And the subset stuff supposed to be narrower
20:24 kyclark Thanks for the suggestions on my Advent article.  I’ve amended accordingly.
20:25 babydrop ... and it is, if I make it `of Any` or anything narrower
20:25 [Coke] Please make sure you have "Day X -" prependend on titles.
20:26 babydrop m: https://gist.github.com/zoffixznet​/c40cbf01dc334bf249d29620ce11c553
20:26 camelia rakudo-moar 843a6b: OUTPUT«Ambiguous call to 'stuff'; these signatures all match:␤:(Thingie $: $, *%_)␤:(SubThingie $: Mu $ where { ... }, *%_)␤  in block <unit> at <tmp> line 10␤␤»
20:26 ssm joined #perl6
20:27 [Coke] (I think we want days listed...)
20:28 pyrimidine joined #perl6
20:28 babydrop damn, how do I reverse an NQPArray
20:28 babydrop I tried messing with atpos, but it's telling me "This type cannot unbox to a native string: P6opaque, Int"
20:28 babydrop for "nqp::atkey($disps, 0);"
20:29 babydrop ugh, it's atpos!
20:29 babydrop stupid PHP messed my brain :)
20:30 babydrop My hackety is not working!! :D
20:31 * [Coke] warns bdf of the <> vanishing problem which impacted his article also.
20:33 babydrop m: https://gist.github.com/zoffixznet​/b8f05fc2290710641d88959a986cd723
20:33 camelia rakudo-moar 843a6b: OUTPUT«here␤P6opaque: no such attribute '$!dispatchees' in type Routine when trying to get a value␤  in sub handle-important at <tmp> line 8␤  in block <unit> at <tmp> line 15␤␤»
20:33 babydrop weird, that stuff works locally
20:33 [Coke] whos article is "Yule the..."
20:33 [Coke] *whose
20:33 babydrop Anyway, that was my idea to hackety-hack the guts of routines to change the order.
20:33 babydrop There's a mentally ill person is yelling here, so I can't focus >_<
20:34 [Coke] You have a weird HTML glitch that starts in the bulleted list.
20:34 Wiertek joined #perl6
20:35 [Coke] oh. I see who it is.
20:35 babydrop TimToady
20:35 babydrop And I think.. that's last years?
20:35 [Coke] ... which I didn't know if it was a secret so I sent him a private message.
20:36 arnsholt babydrop: NQPClassHOW.nqp suggest the following idiom for reversing: "my @out; for @in { nqp::unshift(@out, $_) }; @out"
20:36 [Coke] OH
20:36 [Coke] it's 4 years old.
20:36 babydrop "Draft saved 4 years ago"
20:36 babydrop arnsholt: thanks
20:36 [Coke] guess he's NOT writing a surprise article for the calendar this year!
20:36 babydrop :P
20:36 arnsholt Or you can of course iterate the indexes from +@arr-1 down to zero
20:37 timotimo tadzik: i just saw you did bump that version
20:45 Guest42590 joined #perl6
20:46 labster joined #perl6
20:46 samcv regarding Inline::Perl5, does anybody know how to call a perl 5 module that's in the same directory and not one that's installed in the module folder?
20:47 samcv i mean i try `use lib` but i can't use lib in precompiled things
20:47 babydrop samcv: just use lib '.';
20:47 tadzik timotimo: yup :)
20:47 samcv 'use lib' may not be pre-compiled
20:47 nine samcv: use lib:from<Perl5> '.';
20:47 samcv ok great thanks nine :)
20:47 babydrop \o/
20:48 itaipu joined #perl6
20:54 TEttinger joined #perl6
21:01 pyrimidine joined #perl6
21:02 kyclark joined #perl6
21:02 cdg joined #perl6
21:13 dj_goku joined #perl6
21:20 nowan joined #perl6
21:26 rindolf joined #perl6
21:30 stmuk_ aldi++ # stollen bites
21:31 timotimo stolen bytes?
21:32 stmuk_ more like nybbles
21:33 kyclark stollen is delish
21:34 rurban joined #perl6
21:35 [Coke] aldi++
21:41 trnh joined #perl6
21:43 labster joined #perl6
21:44 dalek Inline-Perl5: 997ccd8 | samcv++ | README.md:
21:44 dalek Inline-Perl5: Show how to load a Perl 5 from a folder to README
21:44 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/997ccd8ada
21:44 dalek Inline-Perl5: 9f07780 | niner++ | README.md:
21:44 dalek Inline-Perl5: Merge pull request #78 from samcv/master
21:44 dalek Inline-Perl5:
21:44 dalek Inline-Perl5: Show how to load a Perl 5 module from a folder in README
21:44 dalek Inline-Perl5: review: https://github.com/niner/Inl​ine-Perl5/commit/9f07780eab
21:45 samcv nine, i'm still having problems using my perl 5 module with Inline::Perl5 unfortunately. it is not actually importing the functions. is there anything I need to do special inside the module?
21:45 samcv use CurlTitle:from<Perl5> <get_url_title_new>; this doesn't work and <:all> doesn't work. says "Undeclared routine"
21:50 hahainternet is it possible to define for example, a 2d vector type, which is a list of only 2 numbers?
21:50 hahainternet it's probably on the front page of the docs and i've missed it :/
21:51 [Coke] hahainternet: an object? or a list-but-with-only-two-elements?
21:52 hahainternet [Coke]: i'm not fussy, but i'm more interested in learning the features available
21:52 hahainternet i know i could make a class with two private variables, for example
21:52 hahainternet but i presume there's some fancy methods i know nothing of :)
21:52 [Coke] m: my @a[2] = 1,2; my @b[2] =1,2,3;
21:52 camelia rakudo-moar 843a6b: OUTPUT«Index 2 for dimension 1 out of range (must be 0..1)␤  in block <unit> at <tmp> line 1␤␤»
21:52 jnthn https://docs.perl6.org/lang​uage/list#Fixed_Size_Arrays maybe
21:52 [Coke] m: my @a[2] = 1,2; say "a"; my @b[2] =1,2,3; say "b";
21:53 camelia rakudo-moar 843a6b: OUTPUT«a␤Index 2 for dimension 1 out of range (must be 0..1)␤  in block <unit> at <tmp> line 1␤␤»
21:53 hahainternet can i define that as a type, something a scalar can contain? or is that always an object?
21:53 AlexDaniel hahainternet: what about a pair?
21:53 hahainternet sorry if i'm not 100% on terminology too
21:54 perlpilot hahainternet: "is it possible?" questions are "yes" most times around here :)
21:55 hahainternet haha yeah that's certainly true
21:55 [Coke] I use JIRA, which has a SQL like language to search for tickets. You can say "text ~ dns" to look for all tickets that mention dns somewhere.... I regularly mistype this as a smartmatch.
21:56 AlexDaniel m: dd Pair.new
21:56 camelia rakudo-moar 843a6b: OUTPUT«(Mu) => Mu␤»
21:56 AlexDaniel why is it Mu?
21:56 [Coke] there's more than one way to do it, hahainternet, and you now have at least 3 of them. :)
21:56 perlpilot JIRA is more like awk than Perl 6  ;)
21:56 jnthn AlexDaniel: Why wouldn't it be Mu?
21:57 jnthn What would you prefer it to be, and why?
21:57 AlexDaniel jnthn: well I dunno, this seems to suggest Nil https://github.com/rakudo/rakud​o/blob/nom/src/core/Pair.pm#L2
21:58 AlexDaniel but I'm not saying that it is wrong, just wondering why Mu
21:58 perlpilot m: Nil ~~ Mu
21:58 camelia rakudo-moar 843a6b: ( no output )
21:58 perlpilot m: say so Nil ~~ Mu
21:58 camelia rakudo-moar 843a6b: OUTPUT«True␤»
21:58 perlpilot I don't see the problem : )
21:58 perlpilot er, :-)
21:58 jnthn AlexDaniel: Hm, that is a tad curious :)
21:59 AlexDaniel jnthn: especially…
21:59 AlexDaniel committable6: all dd Pair.new
21:59 committable6 AlexDaniel, https://gist.github.com/7187​1206d6f8d967763d5fdf90a7864f
21:59 AlexDaniel ¦«2015.04,2015.05,2015.06,2015.07.2,2015.09»: Any => Mu
22:00 AlexDaniel so it was different, then was changed
22:00 AlexDaniel I guess there was some justification for it?
22:00 AlexDaniel bisectable6: old=2015.09 new=2015.12 all dd Pair.new
22:00 bisectable6 AlexDaniel, Bisecting by output (old=2015.09 new=2015.12) because on both starting points the exit code is 0
22:01 bisectable6 AlexDaniel, bisect log: https://gist.github.com/a6ae​56b85852382a17b278a82c172834
22:01 bisectable6 AlexDaniel, (2015-09-24) https://github.com/rakudo/rakudo/commit/​8edd1cdac99c3e465082c0d2951c4568f1bd977c
22:01 pyrimidine joined #perl6
22:01 Technaton joined #perl6
22:01 AlexDaniel huh?
22:01 jnthn It's been consistent for a while at least :)
22:01 labster joined #perl6
22:01 AlexDaniel m: dd Pair.new(Nil, Nil)
22:01 camelia rakudo-moar 843a6b: OUTPUT«(Nil) => Nil␤»
22:01 [Coke] anything tht changed before christmas is ignorable.
22:02 AlexDaniel well, again, I'm not saying that it is a problem
22:02 jnthn *nod*
22:03 jnthn I think there's something "special" about is default(Nil)
22:03 babydrop samcv: you have a robomessage in #perl6-dev BTW
22:03 babydrop We should kickban yoleaux and join yoleaux2 into #perl6, so it could cross-channel messages
22:03 [Coke] we should really combine the 2 yolos.
22:03 [Coke] heh.
22:03 babydrop :D
22:03 [Coke] was going to note that after seeing the list of IRC bots in the help ticket.
22:03 jnthn Just do it now, lol yoolo
22:04 babydrop Well, who's got the banhammer? I can make part 2 happen
22:04 jnthn *yolo # gah! :P
22:04 jnthn Oh. Well, that complicates things :)
22:04 babydrop Why?
22:04 AlexDaniel babydrop: what about all messages that were not delivered?
22:04 [Coke] well, I'd leave the first one ... right.
22:04 babydrop hm...
22:04 [Coke] leave it here for a bit.
22:04 babydrop [Coke]: but then both robots will trigger to .tell and such
22:04 [Coke] arglebargle.
22:04 * jnthn stops trying to remember how to obtain his ops bit :)
22:05 [Coke] or find the original owner (mst? can you help?)
22:05 kurahaupo__ joined #perl6
22:05 babydrop It's /chanserv op #perl6
22:06 babydrop or /msg chanserv ... if your client isn't fancy enough :)
22:06 AlexDaniel so why is it Mu? Did I miss the answer?
22:06 babydrop But yeah, I dunno what to do with existing messages :D
22:06 jnthn m: my $a is default(Nil); say $a
22:06 AlexDaniel and what's the general idea? When should I expect Mu, Nil and Any?
22:06 camelia rakudo-moar 843a6b: OUTPUT«Nil␤»
22:06 babydrop AlexDaniel: everything is Mu
22:06 babydrop m: say 42 ~~ Mu
22:06 camelia rakudo-moar 843a6b: OUTPUT«True␤»
22:07 babydrop AlexDaniel: or did you mean something else?
22:07 jnthn m: class A { has $.a is default(Nil); }; say A.new.a
22:07 camelia rakudo-moar 843a6b: OUTPUT«(Any)␤»
22:07 AlexDaniel babydrop: yea I mean why is it not Any or Nil
22:07 jnthn m: class A { has $.a is default(Nil); method x() { $!a.gist } }; say A.new.x
22:07 camelia rakudo-moar 843a6b: OUTPUT«(Any)␤»
22:07 AlexDaniel again, not implying that something is wrong, I'm just trying to understand
22:07 jnthn At this point, I'm confused too ;)
22:07 babydrop AlexDaniel: so you could store Mus in it
22:08 babydrop m: dd class { has Mu $.foo }.new.foo
22:08 camelia rakudo-moar 843a6b: OUTPUT«Mu␤»
22:08 jnthn babydrop: Yes, the question is why the default value in there is Mu
22:08 babydrop That's its type
22:08 babydrop m: dd class { has Int $.foo }.new.foo
22:08 camelia rakudo-moar 843a6b: OUTPUT«Int␤»
22:08 babydrop This one's Int
22:08 jnthn m: class A { has Mu $.a is default(Nil); method x() { $!a.gist } }; say A.new.x
22:08 camelia rakudo-moar 843a6b: OUTPUT«(Mu)␤»
22:08 jnthn Oh :)
22:09 AlexDaniel has $.key is default(Nil);
22:09 jnthn But again there ain't a Mu in Pair.pm
22:09 babydrop s: Pair, 'new', \()
22:09 SourceBaby babydrop, Sauce is at https://github.com/rakudo/rakudo/​blob/abc6439/src/core/Pair.pm#L17
22:09 jnthn ohhh
22:09 jnthn I see why
22:09 jnthn multi method new(Mu :$key, Mu :$value) {
22:09 Technaton Hello, world! Hope I am not intruding. :) I am thinking of creating a Vindinium bot in Perl6. There are some parts to it, e.g., the A* algorithm. Would that algorithm be appreciated as perl6 module, and if so, what would be the best namespace to put it in?
22:09 jnthn $key and $value are optional
22:09 espadrine_ joined #perl6
22:10 jnthn And we call that candidate for Mu
22:10 jnthn uh
22:10 jnthn for new()
22:10 jnthn And it ends up setting them to Mu
22:10 jnthn Mystery solved.
22:10 AlexDaniel jnthn: so why does it say “is default(Nil)” ?
22:10 babydrop \o/
22:10 jnthn AlexDaniel: Because otherwise assigning Nil to it would lose your Nil
22:11 jnthn AlexDaniel: is default(Nil) is the only way to get a container that you can assign Nil into
22:11 babydrop Technaton: the module would certainly be appreciated
22:11 AlexDaniel jnthn: oh, ok. This part is now clear
22:12 Technaton babydrop: Well, I guess that was the stupid part of the question, since m.p6.org doesn't yield any search result for A*. :)
22:12 babydrop Technaton: as for namespace... I see other modules use Algorithm:: so maybe somewhere there?
22:12 babydrop Technaton: yeah, our ecosystem is baby-sized :D
22:12 AlexDaniel ah… so if something should accept Nil as its value, then it will also return Mu if unset?
22:12 AlexDaniel otherwise I should be expecting Any, right?
22:12 Technaton So, Algorithm::Astar? I am trying to get the vibe of p6. Perl5 I know, Ruby I know, I am a long-year C++ programer… P6 is quite unknown terrain.
22:12 jnthn AlexDaniel: No, we assign Mu to it explicitly
22:13 AlexDaniel jnthn: sure, but from a standpoint of a user
22:13 babydrop m: my $x = Nil;
22:13 camelia rakudo-moar 843a6b: ( no output )
22:13 babydrop m: my $x is default(Nil) = Nil; dd $x
22:13 camelia rakudo-moar 843a6b: OUTPUT«Nil $x = Nil␤»
22:13 babydrop And the Mu is there to make it possible to accept Mus
22:14 babydrop And is default(Nil) is to make it possible to accept Nils
22:14 dj_goku joined #perl6
22:14 AlexDaniel Pair is supposed to allow Nils, so we get Mu. Arrays, on the other hand, don't store Nils, so we get Any as a default value
22:14 babydrop m: my $x = Nil; dd $x # 'cause otherwise they turn to other stuff
22:14 camelia rakudo-moar 843a6b: OUTPUT«Any $x = Any␤»
22:14 pyrimidine joined #perl6
22:14 jnthn Technaton: Personally I'd go for Algorithm::AStar but opinions may vary on that.
22:15 babydrop +1 on that name
22:15 * babydrop & for the day
22:15 jnthn Algorithm::Astar I'd probably do a double-take at :)
22:16 jnthn (As in, wonder what algorithm this is that I didn't hear about, then realize... :))
22:17 jnthn AlexDaniel: I guess there's a few ways to argue it; generally, the places we let Any crop up are those that allow auto-viv to happen
22:18 jnthn m: my $p = Pair.new; $p.value++; say $p
22:18 camelia rakudo-moar 843a6b: OUTPUT«Cannot resolve caller postfix:<++>(Mu); the following candidates␤match the type but require mutable arguments:␤    (Mu:U $a is rw)␤␤The following do not match for other reasons:␤    (Bool:D $a is rw)␤    (Bool:U $a is rw)␤    (Int:D $a is rw)…»
22:18 jnthn m: my $p = Pair.new(:key(Any)); $p.value++; say $p
22:18 camelia rakudo-moar 843a6b: OUTPUT«Cannot resolve caller postfix:<++>(Mu); the following candidates␤match the type but require mutable arguments:␤    (Mu:U $a is rw)␤␤The following do not match for other reasons:␤    (Bool:D $a is rw)␤    (Bool:U $a is rw)␤    (Int:D $a is rw)…»
22:18 jnthn d'oh :)
22:18 pyrimidine joined #perl6
22:18 jnthn m: my $p = Pair.new(:value(Any)); $p.value++; say $p
22:18 camelia rakudo-moar 843a6b: OUTPUT«Cannot resolve caller postfix:<++>(Any); the following candidates␤match the type but require mutable arguments:␤    (Mu:U $a is rw)␤␤The following do not match for other reasons:␤    (Bool:D $a is rw)␤    (Bool:U $a is rw)␤    (Int:D $a is rw…»
22:19 jnthn Curious, value is marked "is rw"...
22:20 jnthn Oh, but that constructor binds :)
22:20 jnthn Interesting. :)
22:21 jnthn Time for some sleep...'night
22:27 Technaton jnthn: Good night!
22:28 AlexDaniel m: dd (;;)
22:28 camelia rakudo-moar 843a6b: OUTPUT«(Nil, Nil)␤»
22:28 Technaton Well, I see I have quite a lot to learn. P6 is very different from p5. The interface question is the best way to learn a new language. :)
22:28 Technaton Thanks for the suggestions!
22:29 Technaton Is there something akin of template functions in p6?
22:31 Technaton For example, in C++, I'd probably define something along the lines of `template <class Node> Node::Iter neighbors(Node const& node);`, and have the user specialize the template to get the neighbors of a tree node (for A*).
22:32 Technaton Pro: Clean interface. I could simple have `Path a_star::path(Node const& from, Node const& to)`, even with the five predicates A* needs.
22:32 Technaton Pure OO doesn't look so good, it would need an interface and finally multiple inheritance. Quite cumbersome.
22:33 Technaton How does one create a functional/predicate-based interface in p6?
22:34 AlexDaniel committable6: 2016.09,2016.10 Nil.chrs
22:34 committable6 AlexDaniel, https://gist.github.com/764a​f00892bb0df6dbcaa8ec8b02e571
22:36 timotimo Technaton: you can just take any kind of object and call .neighbours on it, for example
22:36 timotimo "duck typing"
22:37 timotimo you would need templates for the same thing in cpp because you have to compile new code to make it work with different classes; there's no "call method by its name" functionality in vanilla c++
22:37 grumble joined #perl6
22:37 timotimo (qt, for example, adds this)
22:38 Technaton Okay, in the same way as, e.g., a Ruby programmer would do it. So I've got "node.neighors", "node.heuristic(to)", etc. - But the point is: How do I convey that clearly to the potential API user? In C++, a bit of doco and the compiler suffices (cf. boost), but with duck typing, how does one figure out how to implement this kind of "deep interface" correctly? It's not simply an abstract interface (i.e.,
22:38 Technaton API) to program against…
22:39 Technaton Perhaps I'm just an old guy, but I'm willing to learn new tools.
22:39 timotimo write it into the docs? maybe supply a role that user code can inherit that makes sure the necessary methods are all implemented?
22:40 Technaton How do I make sure that all necessary methods are implemented? By supplying a default method that throws an exception?
22:41 Technaton I'm just asking widely, coming from another language I've used for 10 years. Sorry if the questions seem overly naive.
22:41 Technaton *wildly
22:45 kyclark Technaton: https://docs.perl6.org/language/opera​tors#index-entry-Fatal_stub_operator
22:45 kyclark Would that work?  Kind of like declaring abstract methods?
22:46 Technaton kyclark: "Abstract methods": I don't want them. I would ideally like the user to supply some predicates, the way Boost.Graph does it, for example. I know that this probably sounds obsucre, since its not the usual "here, implement that interface" stuff.
22:47 Technaton Is it possible in p6 to (a) have a namespace, (b) predefine Stubs for predicates (without class binding), and (c) document them?
22:47 Technaton Because the Fatal stub error looks like I'd need a class to tie it to?
22:48 sergot n: my @abc; my @a = 1,2; @abc.push: @a.clone; @a[0] = 42; @a[1] = 42; say @abc;
22:48 camelia niecza : OUTPUT«No such file or directory»
22:48 sergot m: my @abc; my @a = 1,2; @abc.push: @a.clone; @a[0] = 42; @a[1] = 42; say @abc;
22:48 camelia rakudo-moar 843a6b: OUTPUT«[[42 42]]␤»
22:48 sergot is this ok?
22:48 camelia niecza : OUTPUT«(timeout)cat: /home/camelia/niecza/VERSION: No such file or directory␤#perl6 <sergot> rakudo-moar: my @abc; my @a = 1,2; @abc.push: @a.clone; @a[0] = 42; @a[1] = 42; say @abc;␤»
22:49 sergot I use .clone there, shouldn't it be [[1 2]]?
22:49 sergot m: my @abc; my @a = 1,2; @abc.push: @a.clone; @a[0] = 42; @a[1] = 42; say @abc.perl;
22:49 camelia rakudo-moar 843a6b: OUTPUT«[[42, 42],]␤»
22:49 pyrimidine joined #perl6
22:50 sergot it works fine when I do @a = 42, 42; :)
22:51 sergot I can imagine why, but I don't know if the answer is correct up there :)
22:53 ugexe it works if you do `@abc = @a.clone` as well
22:53 ugexe hmm works with .append
22:53 sergot :D
22:54 ugexe m: my @abc; my @a = 1,2; @abc.append: @a.clone; @a[0] = 42; @a[1] = 42; say @abc.perl;
22:54 camelia rakudo-moar 843a6b: OUTPUT«[1, 2]␤»
22:54 sergot what's the difference between .push and .append here?
22:55 ugexe dunno. the only difference I consider is push is for single items, and append handles multiple items
22:57 geekosaur iirc .push follows the single-arg rule, so if you (*.push: @a) it pushes a single item containing the list instead of all the elements separately
22:58 TimToady that's not the single-arg rule, that's just a single arg :)
22:58 TimToady single-arg rule expands a single arg into multiple
22:58 TimToady which push doesn't
22:59 Technaton joined #perl6
22:59 Technaton Whoops, UnexpectedKernelUpdateException thrown. :)
23:01 timotimo Technaton: when you have methods with their body { ... } and the user tries to "does TheRole" on their class, it'll explode at compile time if that method isn't implemented
23:02 sjn \o
23:02 timotimo yo sjn
23:03 Technaton timotimo: Okay, that sounds reasonable. I'll look into it. Thanks! :)
23:03 * sjn was thinking of making a subtype Coord of Pair, but I'm failing. Am I approching this wrong?
23:04 sjn subset*
23:05 timotimo what kind of error do you get?
23:05 timotimo m: subset Coord of Pair; say (a => 1) ~~ Coord
23:05 camelia rakudo-moar 843a6b: OUTPUT«True␤»
23:05 sjn I need it with a where clause
23:05 sjn both k and v in the pair need to be Int
23:06 timotimo m: subset Coord of Pair where { .key ~~ Int and .value ~~ Int }; say (a => 1) ~~ Coord
23:06 camelia rakudo-moar 843a6b: OUTPUT«False␤»
23:06 timotimo m: subset Coord of Pair where { .key ~~ Int and .value ~~ Int }; say (99 => 1) ~~ Coord
23:06 camelia rakudo-moar 843a6b: OUTPUT«True␤»
23:06 sjn aah, thanks
23:10 sjn hmf. seems a Pair isn't the best type for that
23:10 sjn how are shaped arrays going? :)
23:11 ugexe m: role Interface { method req {  ... } }; role Impl1 does Interface { method req { 42 } };  class My::Module { has Interface $.iface; }; my $module = My::Module.new(iface => Impl1.new); say $module.iface.req; # Technaton
23:11 camelia rakudo-moar 843a6b: OUTPUT«42␤»
23:15 dj_goku joined #perl6
23:15 timotimo shaped arrays are working except for views, and they are speeding up nicely thanks to liz' work
23:18 sjn can they be used in subtypes? (e.g. for ensuring an array only has two elements, and both values are Int)
23:18 * sjn is looking for docs
23:19 timotimo my @foo[2] = 0, 0; @foo = 99, 99, 99;
23:19 timotimo m: my @foo[2] = 0, 0; @foo = 99, 99, 99;
23:19 camelia rakudo-moar 843a6b: OUTPUT«Index 2 for dimension 1 out of range (must be 0..1)␤  in block <unit> at <tmp> line 1␤␤»
23:19 timotimo m: my @foo[2] = 0, 0; @foo = 99, 99;
23:19 camelia rakudo-moar 843a6b: ( no output )
23:19 timotimo m: sub takes-two(@foo[2]) { say @foo.perl }; takes-two([4, 5])
23:19 camelia rakudo-moar 843a6b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '@foo' is not declared␤at <tmp>:1␤------> 3sub takes-two(@foo[2]) { say 7⏏5@foo.perl }; takes-two([4, 5])␤»
23:19 timotimo not like that apparently
23:19 sjn ok
23:20 kyclark joined #perl6
23:23 bisectable6 joined #perl6
23:23 evalable6 joined #perl6
23:23 committable6 joined #perl6
23:23 benchable6 joined #perl6
23:24 unicodable6 joined #perl6
23:39 skids joined #perl6
23:40 labster joined #perl6
23:40 labster joined #perl6
23:42 thowe joined #perl6
23:52 pyrimidine joined #perl6
23:58 Vynce joined #perl6
23:59 BenGoldberg joined #perl6

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

Perl 6 | Reference Documentation | Rakudo