Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2016-11-15

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:01 canopus joined #perl6
00:05 rpburkholder joined #perl6
00:10 pierre_ joined #perl6
00:10 vytas joined #perl6
00:14 Actualeyes joined #perl6
00:15 ggoebel joined #perl6
00:27 canopus joined #perl6
00:34 BenGoldberg joined #perl6
00:39 viki kyclark++ TEACHING Perl 6 to a class!
00:39 viki ( http://blogs.perl.org/users/ken_youens-clar​k/2016/11/finding-cheaters-with-k-mers.html )
00:40 viki lizmat++ good weekly
00:48 Xliff Are there any web articles on Perl6 IPC?
00:49 Xliff I guess it's time to learn the Supply classes.
00:53 araujo joined #perl6
00:53 araujo joined #perl6
00:54 baest joined #perl6
00:58 canopus joined #perl6
01:10 canopus joined #perl6
01:15 samcv there are Xliff i have two if you wanna check them out https://cry.nu/perl6/multithreading-in-perl6/
01:15 samcv not very long https://cry.nu/perl6/multi​threading-in-perl6-part2/
01:16 samcv should be a good intro, and then supplement with other things, but i think it lays a good foundation
01:17 samcv i thought a lot of the things about supplies and stuff were not that easy to understand when you'd never worked with them before
01:19 matiaslina joined #perl6
01:21 samcv Xliff, after that i'd probably look at this page https://docs.perl6.org/language/concurrency.html
01:22 canopus joined #perl6
01:49 labster joined #perl6
01:59 Xliff Thanks, samcv++
01:59 pierre_ joined #perl6
02:03 pierre_ joined #perl6
02:13 labster joined #perl6
02:21 pierre_ joined #perl6
02:23 sftp joined #perl6
02:26 perlawhirl joined #perl6
02:39 Yeeb joined #perl6
02:48 ilbot3 joined #perl6
02:48 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:56 cdg joined #perl6
03:00 cdg joined #perl6
03:10 TEttinger joined #perl6
03:41 noganex_ joined #perl6
03:48 pierre_ joined #perl6
04:01 pierre_ joined #perl6
04:11 cyphase joined #perl6
04:22 seatek joined #perl6
04:44 Xliff joined #perl6
05:10 pierre_ joined #perl6
05:18 Xliff joined #perl6
05:19 Actualeyes joined #perl6
05:23 Cabanossi joined #perl6
05:24 cyphase joined #perl6
05:54 wamba joined #perl6
05:54 mayathecat joined #perl6
05:56 cyphase joined #perl6
06:00 rurban joined #perl6
06:03 pierre_ joined #perl6
06:03 ugjka joined #perl6
06:04 ugjka joined #perl6
06:10 samcv trying to figure out why the hell this is happening:
06:10 samcv m: my $str = '!ban nick 10minutes';  $str ~~ / ^ '!ban ' (\S+) ' '? (\S)+ /; say $1;
06:10 camelia rakudo-moar 26e351: OUTPUT«[「1」 「0」 「m」 「i」 「n」 「u」 「t」 「e」 「s」]␤»
06:10 samcv never had this happen before
06:10 samcv m: my $str = '!ban nick 10minutes';  $str ~~ / ^ '!ban ' (\S+) ' '? (\S)+ /; say $1.Str;
06:10 camelia rakudo-moar 26e351: OUTPUT«1 0 m i n u t e s␤»
06:12 samcv oh i think the + is in the wrong spot?. hmm interesting
06:15 perlawhirl my $str = '!ban nick 10minutes'; $str  ~~ / ^ '!ban' \s+ (\S+) \s* (\S+) /; say ~$1
06:15 perlawhirl m: my $str = '!ban nick 10minutes'; $str  ~~ / ^ '!ban' \s+ (\S+) \s* (\S+) /; say ~$1
06:15 camelia rakudo-moar 26e351: OUTPUT«10minutes␤»
06:22 Xliff m: my $str = '!ban nick 10 minutes'; $str  ~~ / ^ '!ban' \s+ (\S+) \s* (\S+) \s* (\S+) /; say ~$1
06:22 camelia rakudo-moar 26e351: OUTPUT«10␤»
06:22 Xliff m: my $str = '!ban nick 10 minutes'; $str  ~~ / ^ '!ban' \s+ (\S+) \s* (\S+) \s* (\S+) /; say $0, $1, $2
06:22 camelia rakudo-moar 26e351: OUTPUT«「nick」「10」「minutes」␤»
06:23 perlawhirl bisectable6: my @a[4] = ^4; @a = @a.rotate(1); say @a;
06:23 bisectable6 perlawhirl, Bisecting by output (old=2015.12 new=26e3516) because on both starting points the exit code is 0
06:23 bisectable6 perlawhirl, bisect log: https://gist.github.com/abc5​47a754f4a2cde01e446c1a3fdbbc
06:23 bisectable6 perlawhirl, (2016-11-01) https://github.com/rakudo/rakudo/commit/​e28b136954dc576a29984c125493ad8c0ca7d8c3
06:25 cyphase joined #perl6
06:28 perlawhirl .tell lizmat found a regression: https://gist.github.com/Whateverabl​e/abc547a754f4a2cde01e446c1a3fdbbc
06:28 yoleaux perlawhirl: I'll pass your message to lizmat.
06:32 darutoko joined #perl6
06:38 cyphase joined #perl6
06:38 Tonik joined #perl6
06:38 rpburkholder joined #perl6
06:40 rurban joined #perl6
06:49 domidumont joined #perl6
06:50 RabidGravy joined #perl6
06:53 cyphase joined #perl6
06:59 nadim joined #perl6
07:03 bjz joined #perl6
07:05 abraxxa joined #perl6
07:11 neuraload joined #perl6
07:15 kurahaupo__ joined #perl6
07:19 cyphase joined #perl6
07:26 rurban joined #perl6
07:28 wamba joined #perl6
07:29 Xliff Is there any way of breaking execution of an instance of HTTP::Server::Simple
07:32 pierre_ joined #perl6
07:32 bjz joined #perl6
07:35 cpage_ joined #perl6
07:39 pierre_ joined #perl6
07:41 bjz joined #perl6
07:48 cyphase joined #perl6
08:00 wamba joined #perl6
08:02 domidumont joined #perl6
08:10 ufobat joined #perl6
08:14 domidumont joined #perl6
08:18 domidumont joined #perl6
08:23 zakharyas joined #perl6
08:25 domidumont joined #perl6
08:27 Xliff m: ^100.pick(3)
08:27 camelia rakudo-moar 26e351: OUTPUT«Potential difficulties:␤    Precedence of ^ is looser than method call; please parenthesize␤    at <tmp>:1␤    ------> 3^1007⏏5.pick(3)␤WARNINGS for <tmp>:␤Useless use of "^" in expression "^100.pick(3)" in sink context (line 1)␤»
08:27 Xliff m: (^100).pick(3).say
08:27 camelia rakudo-moar 26e351: OUTPUT«(94 89 5)␤»
08:28 Xliff m: (^100).pick(3).say
08:28 camelia rakudo-moar 26e351: OUTPUT«(71 69 82)␤»
08:33 maybekoo2 joined #perl6
08:36 AlexDaniel joined #perl6
08:47 lizmat .
08:47 yoleaux 06:28Z <perlawhirl> lizmat: found a regression: https://gist.github.com/Whateverabl​e/abc547a754f4a2cde01e446c1a3fdbbc
08:47 lizmat wow, and that wasn't caught by spectest  :-(
08:48 lizmat and good *, #perl6!  :-)
08:48 * lizmat clickbaits https://p6weekly.wordpress.com/201​6/11/14/2016-46-tweaking-cheaters/
08:50 zacts joined #perl6
08:50 domidumont joined #perl6
08:51 wamba joined #perl6
08:53 cpage_ joined #perl6
08:55 moritz lizmat++
08:55 moritz speaking of TWEAK
08:55 moritz I'm a bit annoyed that even in TWEAK it tells me not use virtual method calls
08:55 moritz but I guess it makes sense, sort of
08:57 dakkar joined #perl6
09:00 ocbtec joined #perl6
09:04 [ptc] lizmat++
09:04 jonas2 joined #perl6
09:05 nadim_ joined #perl6
09:06 cibs joined #perl6
09:08 pierre_ joined #perl6
09:10 pierre_ joined #perl6
09:11 lizmat .tell perlawhirl .reverse on shaped arrays is also borked :-(
09:11 yoleaux lizmat: I'll pass your message to perlawhirl.
09:11 lizmat looking at it now
09:15 rindolf joined #perl6
09:16 lizmat hmmm... actually, it's not the .rotate/.reverse itself, it's in combination with assigning it to itself
09:17 lizmat m: my @a = ^4; say (@a = @a.rotate)
09:17 camelia rakudo-moar 26e351: OUTPUT«[1 2 3 0]␤»
09:17 lizmat m: my @a[4] = ^4; say (@a = @a.rotate)
09:17 camelia rakudo-moar 26e351: OUTPUT«(Mu)␤»
09:17 lizmat ^^  another difference
09:21 bjz joined #perl6
09:25 AlexDaniel joined #perl6
09:27 bjz_ joined #perl6
09:38 pmurias joined #perl6
09:38 pmurias jnthn: ping
09:40 pmurias jnthn: is settypecheckmode with TYPE_CHECK_CACHE_THEN_METHOD actually used/usefull for anything?
09:42 pmurias jnthn: when doing nqp::istype(obj, type) that flag is taken from the type while the istype check is called on the obj.HOW and looks up in the obj cache
09:48 bjz joined #perl6
09:50 brillenfux joined #perl6
09:56 brillenfux hi, I've been on Linux systems the last ten years so.. how useful is Rakudo on Windows systems? how dependent on POSIX is Perl 6?
09:57 Ulti https://gist.github.com/Mat​tOates/c5879a07b1ef2c013097  compare the numbers at the bottom for this year vs last year
09:59 arnsholt Those are good, right?
09:59 Ulti yup
09:59 arnsholt Was a bit disoriented by differences in x-axis =)
10:01 Ulti yeah I should redo the parallel ones with whatever promise syntax works now
10:02 wamba joined #perl6
10:02 gfldex brillenfux: it does not depend on POSIX at all. There is no fork in Perl 6. You may get problems with file permissions and notifications may not work well (what is a win32 problem).
10:07 jnthn pmurias: Don't think we currently have any kinds of type that need it
10:07 jnthn pmurias: However, it is available through Metamodel::Primitives
10:08 jnthn It's potentially useful also, if you have a situation where you can't pre-populate a cache of all possible matches, so the absence of something in there doesn't mean the answer should be "no"
10:08 domidumont joined #perl6
10:15 brillenfux gfldex: okay, any idea what to read to expand those insights?
10:19 dalek doc: 4088900 | gfldex++ | doc/Language/typesystem.pod6:
10:19 dalek doc: explain coersion and hint at Cool
10:19 synopsebot6 Link: http://doc.perl6.org/language/typesystem
10:19 dalek doc: review: https://github.com/perl6/doc/commit/4088900919
10:19 gfldex brillenfux: see https://github.com/rakudo/r​akudo/tree/nom/src/core/IO
10:20 brillenfux gfldex: alright, true. thanks :)
10:22 gfldex brillenfux: you start with $*SPEC what points to https://docs.perl6.org/type/IO$COLON$COLONSpec
10:22 gfldex brillenfux: also, expect anything on win32 to be rather untested
10:23 pmurias jnthn: btw the docs on the  :authoritative for configure_type_checking are incorrect
10:23 brillenfux gfldex: I see
10:25 jnthn Quite a few Windows-specific fixes have gone in during recent times (heck, I did a couple of 'em), so it's certainly actively maintained. But yes, suspect smaller userbase to discover stuff than on Linux/OSX.
10:26 jnthn The threading stuff is arguably more stable on Windows. :P
10:26 jnthn (Mostly 'cus you get away with more. :))
10:27 jnthn pmurias: Feel free to tweak 'em if you've time
10:28 pmurias jnthn: TYPE_CHECK_CACHE_THEN_METHOD is currently "objects might be of this type despite what their type caches say" rather then "this type cache is not exhaustive"
10:28 pmurias jnthn: is that a really intended or a bug?
10:29 jnthn How are those two different?
10:29 jnthn If the type cache is not exhaustive, you can't rely on it to say "no, it's not of this type", so have to do the full-blown check
10:30 pmurias jnthn: when doing nqp::istype($obj, $type) the flag is taken from $type
10:30 jsimonet joined #perl6
10:31 pmurias jnthn: re how are those two different, it's "all type caches are not exhaustive, if this type isn't in any one of them call istype"
10:33 brillenfux jnthn: thanks for the insights :)
10:33 pmurias s/call istype/call type_check/
10:34 pmurias jnthn: it's like if in the method cache we set the "is not authoritative" flag on the method
10:35 dalek doc: 75f4ef3 | gfldex++ | doc/Type/Cool.pod6:
10:35 dalek doc: add contains to table
10:35 dalek doc: review: https://github.com/perl6/doc/commit/75f4ef3138
10:35 synopsebot6 Link: http://doc.perl6.org/type/Cool
10:40 pmurias jnthn: should I nopaste a test case illustrating the difference?
10:41 jnthn pmurias: You can, though I see the issue...bit too busy with $dayjob to really have an answer, but a quick grep through NQP/Rakudo sources suggest our own meta-objects don't actually use it
10:42 DrForr For those of you not on FB/Twitter: I've been accepted to OSCON Austin 2017 and Open Source Days in Copenhagen.
10:45 nadim joined #perl6
10:46 pmurias jnthn: ok, I'll refrain from implementing that mode on the js backend
10:47 domidumont joined #perl6
10:51 dalek doc: fd6a2cb | gfldex++ | doc/Language/typesystem.pod6:
10:51 synopsebot6 Link: http://doc.perl6.org/language/typesystem
10:51 dalek doc: add examples for coersion
10:51 dalek doc: review: https://github.com/perl6/doc/commit/fd6a2cbe67
10:55 bjz joined #perl6
10:59 dalek doc: af5f3ad | gfldex++ | doc/Type/Proc/Async.pod6:
10:59 synopsebot6 Link: http://doc.perl6.org/type/Proc/Async
10:59 dalek doc: show how to add exception handler while tapping
10:59 dalek doc: review: https://github.com/perl6/doc/commit/af5f3adf50
10:59 dalek doc: 9e8265d | gfldex++ | doc/Type/Supply.pod6:
10:59 dalek doc: fix bad copypasta, also the callback doesn't have to be a method
10:59 synopsebot6 Link: http://doc.perl6.org/type/Supply
10:59 dalek doc: review: https://github.com/perl6/doc/commit/9e8265df26
11:22 rurban joined #perl6
11:24 zakharyas joined #perl6
11:32 pierre_ joined #perl6
11:39 domidumont joined #perl6
11:55 Xliff \o
11:55 Xliff Has anyone had a chance to look at this bug: https://rt.perl.org/Ticket/Display.html?id=130095
11:57 moritz it seems zoffix has had a chance to look at it
11:57 Xliff Also, does anyone have an idea as to the best way to terminate a class implementing HTTP::Server::Simple?
11:57 ggoebel joined #perl6
11:58 moritz the class is terminated by the closing curly
11:59 Xliff Even if the run method is invoked?
12:00 Xliff That's not the impression I get from the examples. Take a look at this one: https://github.com/gfldex/http-server-simp​le/blob/master/examples/01-simple-base.pl6
12:01 Xliff So if I do: my $s = MyServerClass.new; my $p = start { $s.run }
12:02 Xliff If I "await $p" the server will sit there and process requests, right?
12:02 sufrostico joined #perl6
12:02 Xliff I'm still trying to pick up Promises, Suppliers and Supplies.
12:02 gfldex yes, there is no way to terminate it from the outside. await will block
12:05 moritz then don't await on it
12:05 dalek doc: 8fcc090 | coke++ | doc/Language/typesystem.pod6:
12:05 dalek doc: remove trailing whitespace
12:05 synopsebot6 Link: http://doc.perl6.org/language/typesystem
12:05 dalek doc: review: https://github.com/perl6/doc/commit/8fcc090d41
12:05 dalek doc: f643d01 | coke++ | / (2 files):
12:05 dalek doc: fix spelling, grammar, ignore new code
12:05 dalek doc: review: https://github.com/perl6/doc/commit/f643d01464
12:06 moritz you do do a   my $exit-promise = Promise.new; await Promise.anyof($p, $exit-promise)
12:06 moritz and when you want the server to stop, you do $exit-promise.keep(True)
12:06 gfldex Xliff: you will have to subclass and overload HTTP::Server::Simple.net_server
12:07 gfldex moritz: is the thread actually terminated? It may be sleeping on $!listener.accept
12:08 timotimo it'd be kinda nice to have HTTP::Server::Simple and others offer a "please stop the server now" thing
12:08 gfldex do signal handlers work inside threads?
12:09 lizmat gfldex: afaik, signal handlers have their own thread
12:13 moritz gfldex: I have no idea
12:13 nadim_ joined #perl6
12:13 lizmat m: signal(SIGINT).tap: { say $*THREAD; exit }; say $*THREAD; sleep 2; qqx/kill -{+SIGINT} $*PID/
12:13 camelia rakudo-moar cd765e: OUTPUT«Thread #1 (Initial thread)␤qx, qqx is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting line 1␤  in sub QX at src/RESTRICTED.setting line 11␤  in block <unit> at <tmp> line 1␤␤»
12:13 lizmat hmmm
12:13 lizmat $ 6 'signal(SIGINT).tap: { say $*THREAD; exit }; say $*THREAD; sleep 2; qqx/kill -{+SIGINT} $*PID/'
12:13 lizmat Thread #1 (Initial thread)
12:13 lizmat Thread #3
12:17 gfldex we would need a non-blocking IO::Socket::INET (or have a timeout on select). Generally we don't got a mechanism to wake up a thread and let it handle a signal of sorts.
12:21 moritz the non-blocking IO::Socket::INET is called IO::Socket::Async
12:24 gfldex moritz: is it non-blocking both from the outside and the inside?
12:26 Xliff gfldex: Ack! If I can't terminate it, that's a bit of a problem.
12:26 Xliff I will try to test moritz's theory when I get a chance.
12:27 Xliff My back is killing me and I can't sleep.
12:27 gfldex IO::Socket::INET.accept should sport a timeout by exposing the OS ability to have such a timeout (not sure if/how that works in win32)
12:28 rurban joined #perl6
12:30 Xliff Oh. Missed the bit about net_server. Will look into that, too. Thanks.
12:30 moritz gfldex: I think you can close an IO::Socket::Async
12:30 jnthn Yes, if you .close the tap then it'll stop listening. That's tested.
12:35 jnthn lunch &
12:37 dalek doc: 20f95fc | gfldex++ | doc/Type/Blob.pod6:
12:37 dalek doc: doc utf8-c8
12:37 synopsebot6 Link: http://doc.perl6.org/type/Blob
12:37 dalek doc: review: https://github.com/perl6/doc/commit/20f95fc3d1
12:37 gfldex many new things where learned today :)
12:46 nadim joined #perl6
12:47 rindolf joined #perl6
13:12 bjz_ joined #perl6
13:12 mr-foobar joined #perl6
13:23 canopus joined #perl6
13:32 araujo joined #perl6
13:35 nowan joined #perl6
13:39 rurban joined #perl6
13:40 rurban1 joined #perl6
13:42 rurban2 joined #perl6
13:43 * perlpilot idly wonders if there's anything interesting that bdf can say about LP6 that could make as an advent article
13:43 viki huggable: advent
13:43 huggable viki, https://github.com/perl6/mu/blob/ma​ster/misc/perl6advent-2016/schedule
13:44 perlpilot I guess no one cared for topic brain storming this year
13:47 DrForr I think he's still mulling the TOC; I gave him a lot to digest when we were talking about it.
13:47 [Coke] dalek source?
13:48 timotimo i can imagine it'd be cool to have one or two posts about NativeCall + fortran and/or Rust
13:48 perlpilot indeed
13:48 timotimo i personally know zero about fortran, and one about Rust
13:48 dalek mu: bf69367 | (Will Coleda)++ | misc/perl6advent-2016/schedule:
13:48 dalek mu: Claim a slot.
13:48 dalek mu: review: https://github.com/perl6/mu/commit/bf69367fb5
13:48 viki [Coke]: it's on hack in /home/dalek/dalek
13:48 perlpilot That k-mers article would have made a nice advent post too  ;)
13:48 [Coke] viki: there's a repo somewhere, no?
13:48 viki agreed
13:49 viki [Coke]: no idea
13:49 DrForr I've got a mini-book on Rust :)
13:49 [Coke] viki: got it (and the repo from the checkout), thanks.
13:50 viki .ask kyclark would you be interested in writing a Perl 6 Advent ( https://perl6advent.wordpress.com/ ) blog post this year? Add yourself to schedule: https://github.com/perl6/mu/blob/ma​ster/misc/perl6advent-2016/schedule
13:50 yoleaux viki: I'll pass your message to kyclark.
13:50 viki [Coke]: what is it?
13:50 [Coke] git://github.com/Infinoid/dalek-plugins.git
13:50 viki huggable: dalek source :is: http://github.com/Infinoid/dalek-plugins
13:50 huggable viki, Added dalek source as http://github.com/Infinoid/dalek-plugins
13:51 timotimo wow, that's old :)
13:55 perlpilot huh ... trying to think up something I could do for an advent post, I was looking back at past articles.  It's a little bit amazing that we've been doing Perl 6 Advent for 7 years
13:55 timotimo yes, quite!
13:56 timotimo maybe we can find something that's only sensible to try now that we've had the speed improvements we've had
13:57 grondilu joined #perl6
13:58 * [Coke] takes day one to give everyone else one more day to think about it.
13:58 perlpilot Even just a look back at speed compared with last year might be interesting.  Take Zoffix's graph, look at a couple of programs on year-ago rakudo as compared with today, then extrapolate those programs into next year
13:58 * viki was hoping for TimToady to claim Day #1 and do some sort of State of The Union type of thing...
13:59 perlpilot viki: That's my hope every year, but ... you can see how often that's worked out  :)
13:59 viki :}
13:59 timotimo zoffix has a graph?
13:59 viki timotimo: the one I posted about estiting for next year
13:59 timotimo State of the Union Types?
13:59 timotimo oh, that one
14:00 viki https://twitter.com/zoffix​/status/796810512986238978
14:00 timotimo only 15 days to go until the advent calendar month starts :o
14:00 timotimo viki: have you tried what happens when you use more than one year of data? i *think* we've had tux's benchmark before that
14:00 timotimo it'll probably make the outcome a bit less optimistic :P
14:01 perlpilot trend lines are funny that way
14:01 timotimo but as always, there's lies, damned lies, and benchmarks/statistics/plots/...
14:01 viki Well, even now R² is .79 :) Not exactly perfect fit
14:01 timotimo mhm
14:01 * timotimo BBIAB
14:01 Ven joined #perl6
14:02 viki And I don't really want to take older data, because it represents unstable language.
14:02 viki So it's like comparing apples and... pineapples :)
14:02 Ven well met, #perl6! I see it's that time of the year we advent again :).
14:03 Ven also TIL pmurias worked on a CL backend for niecza in ~2011..
14:03 viki Yup. Add yourself to the schedule: https://github.com/perl6/mu/blob/ma​ster/misc/perl6advent-2016/schedule
14:06 perlpilot Also, if anyone needs a wordpress account, many of us are admins who can give it.
14:07 perlpilot (it would be neat to get some of the people who joined us within the last year to write some advent articles)
14:09 cdg joined #perl6
14:11 kurahaupo__ joined #perl6
14:15 rindolf joined #perl6
14:21 Ven viki: I'm not sure what to talk about atm :)
14:24 viki Ven: sign up for a spot anyway.
14:29 Ven it's okay, it's okay :).
14:29 Ven sorry to pdcawley++ as well, who posted a question on one my advent post last year – and to which I never replied (I never got a notification)...
14:29 skids joined #perl6
14:32 [Coke] viki: I'm happy to switch out for a later day, no worries.
14:36 danlei joined #perl6
14:38 [Coke] (will add a note to that effect)
14:38 danlei hi! is there a way to access the REPL object in a running repl?
14:38 dalek mu: 8850c3c | (Will Coleda)++ | misc/perl6advent-2016/schedule:
14:38 dalek mu: let someone else steal #1 if they want.
14:38 dalek mu: review: https://github.com/perl6/mu/commit/8850c3caee
14:41 danlei or rather: is the functionality from the Completion role somehow accessible at the repl? doesn't look like it, but I'm not very experienced in perl6.
14:44 timotimo if you get a backtrace from your code, and have --ll-exception on your perl6 commandline, you can see what frames are in dynamic scope, and all dynamic variables (i.e. those with a star in them) will be available to your code
14:44 timotimo that could help guide your question
14:45 danlei thanks, I'll have a look
14:48 timotimo https://www.reddit.com/r/gonwild/  -  oh jesus. i love you, internet
14:48 timotimo "Gonwild is a place for closed, Euclidean Geometric shapes to exchange their nth terms for karma; showing off their edges in a comfortable environment without pressure.
14:49 tadzik ahahahahh
14:49 timotimo a community for 7 years ... o_O
14:49 timotimo this is incredible
14:49 timotimo my sides! *cough*
14:54 Ven timotimo: beautiful.
14:55 Ven I wasn't sure I wanted to click on that "I'm 18". I verified the URL...
14:55 timotimo it's obviously part of the joke :)
15:01 timotimo desert bus is currently doing a random four chords sing-along with suggestions from the stream chat
15:03 dalek ecosystem: b8e7410 | jnthn++ | META.list:
15:03 dalek ecosystem: Add File::Ignore.
15:03 dalek ecosystem:
15:03 dalek ecosystem: See https://github.com/jnthn/p6-file-ignore for details.
15:03 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/b8e7410cb0
15:03 zakharyas joined #perl6
15:03 jnthn Missed that one while working on DayJob::Prototype. :)
15:04 DrForr Birdplane? Take your Canvas Bags
15:04 timotimo take your canvas bags is a fantastic song
15:06 sufrostico joined #perl6
15:15 araujo joined #perl6
15:16 tadzik to the suuupermarket
15:19 DrForr Just thinking of four-chord songs; Axis of Awesome has a good 'un.
15:23 timotimo correct
15:24 timotimo https://www.youtube.com/watch?v=FtVprVO9Uas - square enix also has one for final fantasy 6
15:24 domidumont joined #perl6
15:31 domidumont joined #perl6
15:32 sufrostico joined #perl6
15:46 sufrostico joined #perl6
15:54 wamba joined #perl6
15:56 kyclark joined #perl6
15:57 kyclark I’m willing to sign up for the Advent calendar.  How do I do that?
15:57 yoleaux 13:50Z <viki> kyclark: would you be interested in writing a Perl 6 Advent ( https://perl6advent.wordpress.com/ ) blog post this year? Add yourself to schedule: https://github.com/perl6/mu/blob/ma​ster/misc/perl6advent-2016/schedule
16:00 rurban joined #perl6
16:07 nicq20 joined #perl6
16:08 kyclark OK, it’s possible I did that correctly.
16:08 [Coke] you can edit that file in your browser, even to claim a space.
16:17 dalek mu: 6d774a8 | (Ken Youens-Clark)++ | misc/perl6advent-2016/schedule:
16:17 dalek mu: Update schedule
16:17 dalek mu: review: https://github.com/perl6/mu/commit/6d774a8150
16:17 dalek mu: 1ee3af0 | (Will Coleda)++ | misc/perl6advent-2016/schedule:
16:17 dalek mu: Merge pull request #15 from kyclark/patch-1
16:17 dalek mu:
16:17 dalek mu: Update schedule
16:17 dalek mu: review: https://github.com/perl6/mu/commit/1ee3af0d77
16:27 Lucas_One1 joined #perl6
16:27 dakkar I'm looking at jnthn's latest module, https://github.com/jnthn/p6-file-ign​ore/blob/master/lib/File/Ignore.pm6
16:28 dakkar I have a few questions… first: is there really no better way than EVAL to turn a string representation of a pattern into a pattern?
16:28 cpage_ joined #perl6
16:28 dakkar in p5 I'd do $pattern=qr{$stringified_pattern}
16:28 dogbert17 joined #perl6
16:28 dakkar https://github.com/jnthn/p6-file-ignor​e/blob/master/lib/File/Ignore.pm6#L30 does $pattern = EVAL("/$stringified_pattern/")
16:28 dakkar which looks a bit ugly to me
16:31 jnthn You can do /<$pattern>/ too
16:31 jnthn I just happen to know it performs a good bit worse
16:32 jnthn And /<$pattern>/ will do some kind of compilation anyway
16:32 jnthn (e.g. like EVAL)
16:32 * geekosaur has concerns other than ugliness there... can't tell from quick look whether it's got code injection potential or not though
16:33 jnthn No, it doesn't
16:34 jnthn The lit action method compiles it into a quoted string
16:34 jnthn And takes care of escapes and embedded quotes
16:36 sufrostico joined #perl6
16:36 [Coke] viki: any interest in making your ticket aggregator also pull from other ticket queues?
16:36 [Coke] (nqp, moar, docs, specs, roast...)
16:40 itcharlie joined #perl6
16:40 dakkar jnthn: ok, I bow to your superior knowledge of the performance issues ☺
16:40 viki [Coke]: nope. Those already have decent issue trackers (GitHub).
16:41 dakkar the other question is: filenames are bytes, not characters. .gitignore matches bytes, not characters. how could a p6 grammar/pattern deal with that?
16:41 [Coke] viki: I'm more concerned about the aggregation bit, but ok.
16:41 dakkar (also, what does dir() return?)
16:42 viki [Coke]: you're talking about perl6.fail, right? It was always an RTLite UI
16:42 [Coke] Wonder if we could make a perl6 dashboard for issues on github.
16:42 viki You can likely construct a URL that would show you all issues for repos of interest.
16:42 viki Like there's a way to show all Issues for Perl 6 organization, for example
16:45 dalek doc: be90f27 | (Zoffix Znet)++ | doc/Type/Str.pod6:
16:45 dalek doc: Fix typo
16:45 dalek doc:
16:45 dalek doc: Related to #1011
16:45 dalek doc: review: https://github.com/perl6/doc/commit/be90f27dd3
16:45 synopsebot6 Link: http://doc.perl6.org/type/Str
16:46 jnthn dakkar: The utf8-c8 encoding (which can cope with things that don't decode as utf-8, and round-trip them) is used for dir, so reading the .gitignore or whatever file using that encoding also would get the desired effect without having to worry about anything in the grammar.
16:46 jnthn Guess the example in the readme could be tweaked to do that :)
16:47 dakkar oh, so things went that way! I guess the bad byte sequences get represented as private codepoints outside of unicode range
16:48 jnthn Ended up doing them using the same machinery as NFG synthetics.
16:48 dakkar sensible for things are mostly utf-8
16:49 dakkar on the other hand… if I were to write a grammar for a network protocol, where things have to actually be treated as octets (even when they look like utf-8 byte sequences), how would I do that?
16:52 gfldex dakkar: matching binary and/or streams is not really supported yet
16:52 jnthn Eventually, we'll make that happen by being able to match a Buf agaisnt a grammar, but today you can get the same effect by just "decoding" the thing as latin-1, and use \x90 style things in your grammar.
16:52 dakkar
16:52 jnthn (Which is how I've dealt with HTTP header parsing, for example)
16:52 sufrostico joined #perl6
16:52 dakkar jnthn: I don't know if I should laugh or cry at that, but I realise it's a pragmatic work-around
16:53 dakkar gfldex: oh right, there's *also* the problem of streams
16:53 jnthn Well, it's basically how matching against a Buf is going to end up working anyway.
16:54 dakkar as long as it's encapsulated and people don't get funny ideas about confusing bytes and characters :)
16:54 jnthn The key difference being that your Match object would also give you back Bufs
16:55 dakkar yep, encapsulated enough
16:56 * jnthn will maybe take a look at that some once he's done with his current push on concurrency bugs...or just needs a break from those. :P
16:58 * viki reads https://perl6advent.wordpress.com/20​14/12/24/day-24-seeing-wrong-right/
16:58 viki "Self-clocking code produces better syntax error messages.".... What's self-clocking code?
16:58 jnthn viki: Pretty sure it's a reference to how we always know whether we expect an infix or a term
16:58 sufrostico joined #perl6
16:58 viki Ah
16:58 jnthn (A load of error detection hangs off two terms in a row)
16:59 jnthn It's also why TimToady was so reluctant on $foo .bar .baz (whitespace between methods, so you can chain them over multiple lines)
17:00 jnthn iirc, anyway :)
17:00 jnthn I think eventually the popular demand for that was overwhelming, and the fudge was to consider . as a weird kind of infix in this case :)
17:01 viki I'm glad peer pressure won :)
17:01 * dakkar is really behind on p6, he still thought unspace was necessary
17:01 geekosaur likewise, and tbh that . *feels* infix to me. which is why the old behavior was so annoying
17:02 geekosaur well, part of it
17:03 jnthn Yeah, having to stick \ on the end of lines did somewhat clutter up otherwise neat code
17:06 cdg joined #perl6
17:08 sufrostico joined #perl6
17:10 harmil_wk That \ is one of the things I hate most in the Python community. There are lots of people that prefer function\<newline>(parameters) for long lines... I want to murder them so badly.
17:10 labster joined #perl6
17:10 harmil_wk object\<newline>.method is at least not misleading, as it looks like a variable...
17:13 girafe joined #perl6
17:20 rurban joined #perl6
17:25 nicq20 left #perl6
17:27 viki L>K<:U SRAYUL<SMDAHJSDF<AKSHYRFASLKRT<ASYURTAES>L<KTRWEYH TGEWTG
17:27 viki That was my substitute for a vitriolic comment to AlexDanial I was contemplating of writing https://github.com/perl6/doc/iss​ues/1011#issuecomment-260702621
17:27 * viki instead hits "unsubscribe" button
17:28 wamba joined #perl6
17:29 * geekosaur actually agrees with Alex there. if it's not in a textual format, it does not have a base
17:30 viki Well, fix the text then?
17:30 geekosaur (or rather, its base is determined by the hardware representation, which on all supported platforms is base 2. unless we added s390 and used BCD for Numeric there for some reason)
17:31 viki I see 94 more issues opened in perl6/doc since I unsubbed from that repo a few months ago and they're all needless bikeshedding and a bunch of people "wondering" about stuf.
17:31 viki I implemented the method and documented how I understand it. If "Does not sound right." just fix it.
17:34 viki Wasn't forgiveness > permission mantra all about that in the first place? So people do stuff instead of waiting for some mysterious authority's stamp of approval?
17:34 viki </rant>
17:38 mst viki: have you watched my talk "a decade of dubious decisions" ?
17:38 viki mst: nope
17:38 viki What's the URL?
17:39 mst sec
17:39 * geekosaur is waiting on someone in #xmonad who doesn't know about mod-q /o before trying to work on something else
17:39 mst https://www.youtube.com/watch?v=BaeXXA5UyYg
17:39 mst fairly near the start there's a section about "shouting 'go'"
17:40 mst I suspect right now it will make a lot of sense
17:40 mst (like, in the first 10 mins, I reckon, if you can't be bothered watching it that far I can try and find the exact moment)
17:42 Xliff Hrm. Closing $!listener in my HTTP::Server::Simple subclass didn't seem to terminate the loop in net_server()
17:43 Xliff Looks like I will have to override it.
17:43 sufrostico joined #perl6
17:47 mst viki: note also if you can't be arsed entirely I can summarise the point, but I did a better job of it in the talk :)
18:04 FROGGS joined #perl6
18:07 lostinfog joined #perl6
18:09 harmil_wk Maybe I'm brain farting, but is there a way to do the equivalent of Python's "hash.get("foo", "bar") where "foo" is the key to look up and "bar" is the default value to return if "key" does not exist? Given that hashes can have hash-wide defaults, I don't see any way to do this...
18:09 harmil_wk Note that Python calls them dicts, but same-same.
18:10 viki harmil_wk: %h<foo>//"bar" ? (checks for definedness tho)
18:10 geekosaur (%h<foo> // 'bar')
18:10 geekosaur heh
18:10 harmil_wk But a hash with a default will only be undefined if the value is undefined.
18:10 harmil_wk Not if the key does not exist
18:11 viki m: my %h is default("meow"
18:11 camelia rakudo-moar c5d33a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in parenthesized expression; couldn't find final ')' ␤at <tmp>:1␤------> 3my %h is default("meow"7⏏5<EOL>␤    expecting any of:␤        statement end␤        statem…»
18:11 viki m: my %h is default("meow"); say %h<foo>
18:11 camelia rakudo-moar c5d33a: OUTPUT«meow␤»
18:11 viki m: my %h is default("meow") = foo => "bar"; say %h<foo>
18:11 camelia rakudo-moar c5d33a: OUTPUT«bar␤»
18:11 viki m: my %h is default("meow") = foo => "bar"; say %h<foo meows>
18:11 camelia rakudo-moar c5d33a: OUTPUT«(bar meow)␤»
18:11 harmil_wk I think %hash{"foo"}:exists ??  %hash{"foo"} !! "bar"
18:12 viki :S
18:12 harmil_wk Wait, what is that %h<foo meows> doing?
18:12 viki Didn't you just say that default would apply only when the value is undefined, not when the key doesn't exist?
18:12 viki harmil_wk: it's a slice returning values of two keys
18:12 harmil_wk Right
18:12 viki m: my %h = foo => "bar"; say %h<foo meows>:exists:k
18:12 camelia rakudo-moar c5d33a: OUTPUT«Unsupported combination of adverbs (exists k) passed to slice on %h␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
18:13 viki orly
18:13 viki m: my %h = foo => "bar"; say %h<foo meows>:exists:v
18:13 camelia rakudo-moar c5d33a: OUTPUT«Unsupported combination of adverbs (exists v) passed to slice on %h␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
18:13 viki m: my %h = foo => "bar"; say %h<foo meows>:v
18:13 camelia rakudo-moar c5d33a: OUTPUT«(bar)␤»
18:13 viki m: my %h = foo => "bar"; say %h<foo meows>:v("fooos")
18:13 camelia rakudo-moar c5d33a: OUTPUT«(bar)␤»
18:13 viki oh well
18:14 harmil_wk Right, so if I have a hash %h and I want to get back the value at key "foo" but if there is no such key, I want "bar"... you set a global default on the hash, which isn't the same operation
18:14 harmil_wk I think %hash{"foo"}:exists ??  %hash{"foo"} !! "bar" is the only way... king of klunky... wish Perl has a Python-like method to get the value at a key with a default.
18:15 FROGGS o/
18:15 harmil_wk Sorrry was typing while you were exampling
18:16 harmil_wk FROGGS: hey
18:16 viki harmil_wk: I've actually never used :exists in Perl 6.
18:16 harmil_wk If there's a default on the hash, it's the only way to know if a key exists...
18:16 viki harmil_wk: so you wanting to this this ternary that checking for existence and doesn't something else if not kinda feels strange. What's your usecase for it?
18:16 harmil_wk And if you get a hash as input to a function or method, you must assume it can have a default
18:17 viki %hash<foo> // "bar" is a more common paradigm, IMO, since a hash would not have an undefined value that I'm somehow also finding useful at the same time.
18:18 harmil_wk But if %hash has a default, that fails
18:19 viki harmil_wk: what do you mean by "has a default"? The is default() trait?
18:19 harmil_wk In fact, for that reason, I think we should really caution people never to use it. (yes, the default trait)
18:19 viki I always use it.
18:20 viki If someone set is default(), that means my %hash<foo> // "bar" still works, since I'm getting teh default value for key "foo"
18:20 harmil_wk Do you use that convention even when you don't know where the hash came from and can't control whether or not it defaults? That sounds fragile...
18:20 [Coke] why? so people don't have to use :exists when they mean it?
18:20 harmil_wk [Coke]: who were you asking?
18:21 [Coke] you.
18:21 [Coke] why recommend people don't use default?
18:21 gfldex viki: it's no wonder that so many unreasonable tickets persist. The reasonable ones are getting closed.
18:22 harmil_wk So, I was saying that :exists is the only correct way to ask that question... I'm not sure what you're asking
18:22 [Coke] I haven't done a sweep of doc tickets in a while, will try to do so this week.
18:22 [Coke] You said " In fact, for that reason, I think we should really caution
18:22 [Coke] people never to use it. (yes, the default trait)"
18:22 harmil_wk [Coke]: sorry, that's ambiguous. I was recommending against the use of the // defaulting operator not the default trait
18:22 [Coke] danke.
18:23 chris2 joined #perl6
18:23 harmil_wk Oh, I think the default trait is fine. But it means you can't use the defaulting operator if you don't own the hash in question.
18:23 gfldex viki: the only problem I have with that is that I found myself starting to ignore certain users and I can't predict if that will turn out to be a shame.
18:23 harmil_wk (at least not without being very clear about what you mean)
18:23 sufrostico joined #perl6
18:24 viki harmil_wk: I use whatever semantics work for my code. The // is not "a lazy way to write :exists" in my mind, but that an undefined value is meaningless to my current code. I don't care if it's getting satisfied through a key's existence or through it having a default value
18:26 harmil_wk viki: sure, in some use cases, but that wasn't what I asked. What I asked was how I get the value at key "foo" or the value "bar" if key "foo" doesn't exist... I think the only way to do that is with a multiple-expression test and return, which is kind of odd, but okay.
18:27 viki gfldex: as I stated my unpopular minority opinion before: there are tickets that should be closed simply because there's no one bothered enough to do anything about it. The fact that it's still open after X amount of time is an indication that a ticket is not imporant.
18:28 viki Mojolicious's team applies this well. Their Issue/PR is nearly always empty.
18:29 viki Having 200 open tickets for "unreasonable" issues doesn't serve much of a benefit IMO.
18:29 mst right, while I've occasionally been annoyed by one of my tickets being closed because of that, once I got over my annoyance it was clear that, on balance, they'd made the right call
18:29 mst just generally takes me 24h to stop going "grr" and realise they're right ;)
18:30 viki It actually made me pay more attention to comments on my PRs because I knew if I took a break and leave it off, it'd get closed due to lack of decision.
18:30 mst heh, neat
18:30 [Coke] It's ok to close tickets that are unreasonable/unimplemented/go against the project goals. It's not ok to close them because they've been open and no one has touched them.
18:31 [Coke] (so, going through the tickets to mark the ones that are unreasonable and closing them out is a good thing.)
18:31 viki [Coke]: yeah hence my "unpopular minority" qualifier :)
18:31 [Coke] viki: I just closed one! ... it was yours. and reasonable, but was kind of done. :|
18:31 sufrostico joined #perl6
18:31 iH2O joined #perl6
18:31 viki Cool :) [Coke]++
18:31 masak 007's queue of open issues keeps non-decreasing monotonically. haven't considered it a problem so far.
18:32 masak it kind of reflects that the language is becoming more capable, and I have more plans for it.
18:33 iH2O perl6 is already the Swiss knife of languages
18:33 masak iH2O: it's a Swiss butter knife
18:33 troys joined #perl6
18:35 [Coke] #778 - for windows compatibility, going to suggest .p6 for runnable perl6 code.
18:35 [Coke] https://github.com/perl6/doc/issues/778
18:36 kyclark joined #perl6
18:36 masak [Coke]: +1
18:37 viki harmil_wk: it's almost like the :v adverb could take a value. But I don't know if it's too magical
18:37 viki harmil_wk: like %h<foo>:v("meow"), where it gives you "meow" for keys that don't exist.
18:37 viki Though, now that I think of it... how would that work one slices? :) Too complex
18:38 dalek doc: cf8bf43 | coke++ | doc/Language/modules.pod6:
18:38 synopsebot6 Link: http://doc.perl6.org/language/modules
18:38 dalek doc: Fix #778
18:38 dalek doc: review: https://github.com/perl6/doc/commit/cf8bf433e6
18:38 sufrostico joined #perl6
18:39 domidumont joined #perl6
18:42 viki m: sub postcircumfix:<❰ ❱> ($h, *@keys) { dd [$h, @keys]; return @keys.map: {$h{$_}:exists ?? $h{$_} !! "bars"} }; my %h is default("meows") = foo => 42; say %h❰<foo meow>❱
18:42 viki harmil_wk: ^ :)
18:42 camelia rakudo-moar ee8ae9: OUTPUT«[{:foo(42)}, ["foo", "meow"]]␤(42 bars)␤»
18:42 iH2O left #perl6
18:42 viki m: sub postcircumfix:<❰ ❱> ($h, *@keys) { @keys.map: {$h{$_}:exists ?? $h{$_} !! "bars"} }; my %h is default("meows") = foo => 42; say %h❰<foo meow>❱
18:42 camelia rakudo-moar ee8ae9: OUTPUT«(42 bars)␤»
18:43 viki m: sub postcircumfix:<❰ ❱> ($h, *@keys, :$default) { @keys.map: {$h{$_}:exists ?? $h{$_} !! $default} }; my %h is default("meows") = foo => 42; say %h❰<foo meow>❱:default("FOOS!")
18:43 camelia rakudo-moar ee8ae9: OUTPUT«(42 FOOS!)␤»
18:45 harmil_wk viki: nice. I think that makes the case that regular hash subscripting should take :default
18:45 harmil_wk But very nice implementation
18:45 viki m: use MONKEY-TYPING; augment class Hash { multi method AT-KEY (*@keys, :$default!) { @keys.map: {self{$_}:exists ?? self{$_} !! $default} } }; my %h is default("meows") = foo => 42; say %h<foo meow>:default("FOOS!")
18:45 camelia rakudo-moar ee8ae9: OUTPUT«Unexpected named argument 'default' passed␤  in block <unit> at <tmp> line 1␤␤»
18:45 timotimo why default when there's //?
18:45 * viki shrugs
18:45 viki timotimo: becuause that checks for definedness, not existence :)
18:46 timotimo fair enough
18:46 harmil_wk timotimo: // doesn't work in the face of a hash with a default trait.
18:46 harmil_wk and what viki said...
18:46 viki timotimo: Yeah, I said earlier that // works for many cases
18:46 timotimo ok
18:46 timotimo need to go grocery shopping now
18:47 timotimo even though the cat just lied down next to me :(
18:47 harmil_wk timotimo: Just Google Express it ;-)
18:47 timotimo the what now?
18:47 harmil_wk Google Express is their bulk delivery service. My company uses it to stock the kitchens.
18:48 timotimo available outside the US?
18:48 harmil_wk Not sure.
18:48 timotimo also, bulk may not be what i need :)
18:48 harmil_wk You need all the Ramen! ;)
18:48 timotimo what do i do with 500kg of mixed pickles?
18:48 dalek doc: c18f617 | coke++ | doc/Language/faq.pod6:
18:48 synopsebot6 Link: http://doc.perl6.org/language/faq
18:48 dalek doc: Re-word spec faq
18:48 dalek doc:
18:48 dalek doc: Fixes #772
18:48 dalek doc: review: https://github.com/perl6/doc/commit/c18f617e5e
18:48 harmil_wk They're mixed. The only right solution is to sort them.
18:48 timotimo clearly
18:51 zakharyas joined #perl6
18:56 [Coke] m: my $a = 3; $a min=5; say $a; $a min=2; say $a;
18:56 camelia rakudo-moar ee8ae9: OUTPUT«3␤2␤»
18:56 dalek doc: b28c487 | coke++ | doc/Language/operators.pod6:
18:56 dalek doc: Remove reference to old RT
18:56 dalek doc:
18:56 dalek doc: The example works, the RT is closed, the note does nothing.
18:56 dalek doc:
18:56 synopsebot6 Link: http://doc.perl6.org/language/operators
18:56 dalek doc: Fixes #623
18:56 dalek doc: review: https://github.com/perl6/doc/commit/b28c487c67
18:57 viki [Coke]++ doing stuff with tickets.
18:58 itcharlie left #perl6
18:59 setty1 joined #perl6
19:00 [Coke] viki: I'm afraid it's going to be worse when I'm done, I'm closing the easy ones! :)
19:01 maybekoo2 joined #perl6
19:04 viki mst++ well, that was a very entertaining talk :)
19:06 mst :D
19:07 mst viki: the "sometimes somebody has to shout go" phenomenom is important to remember when cat herding stuff
19:07 viki I'm definitely making a mental note.
19:11 dalek specs: a9f8526 | (Stéphane Payrard)++ | S19-commandline.pod:
19:11 dalek specs: suppress mention of dormant or defunct projects
19:11 dalek specs:
19:11 dalek specs: Update for the current state of rakudo
19:11 dalek specs: review: https://github.com/perl6/specs/commit/a9f8526c5f
19:13 dalek doc: 58c4b20 | (Athos Ribeiro)++ | doc/Language/unicode_entry.pod6:
19:13 dalek doc: Mention smartquotes
19:13 synopsebot6 Link: http://doc.perl6.org/language/unicode_entry
19:13 dalek doc:
19:13 dalek doc: Mention unicode quotes. See #332 for reference
19:13 dalek doc: review: https://github.com/perl6/doc/commit/58c4b200a9
19:13 dalek doc: 0494ba3 | (Zoffix Znet)++ | doc/Language/unicode_entry.pod6:
19:13 dalek doc: Merge pull request #996 from athos-ribeiro/smartquotes
19:13 synopsebot6 Link: http://doc.perl6.org/language/unicode_entry
19:13 dalek doc:
19:13 dalek doc: Mention smartquotes
19:14 dalek doc: review: https://github.com/perl6/doc/commit/0494ba3784
19:16 dalek doc: 8da0704 | (Vynce Montgomery)++ | doc/Language/syntax.pod6:
19:16 dalek doc: Clarifications on numeric literals
19:16 synopsebot6 Link: http://doc.perl6.org/language/syntax
19:16 dalek doc:
19:16 dalek doc: Belief in negative numeric literals creates false expectations regarding precedence conflicts (see #971)
19:16 dalek doc: review: https://github.com/perl6/doc/commit/8da0704624
19:16 dalek doc: d932df6 | (Zoffix Znet)++ | doc/Language/syntax.pod6:
19:16 dalek doc: Merge pull request #991 from VynceMontgomery/patch-3
19:16 synopsebot6 Link: http://doc.perl6.org/language/syntax
19:16 dalek doc:
19:16 dalek doc: Clarifications on numeric literals
19:16 dalek doc: review: https://github.com/perl6/doc/commit/d932df6986
19:16 RabidGravy joined #perl6
19:19 dalek doc: 9e1d756 | (Sterling Hanenkamp)++ | doc/Type/Array.pod6:
19:19 dalek doc: Resolves #977: Correct callable args on splice
19:19 synopsebot6 Link: http://doc.perl6.org/type/Array
19:19 dalek doc: review: https://github.com/perl6/doc/commit/9e1d756b7b
19:19 dalek doc: 0d4390f | (Zoffix Znet)++ | doc/Type/Array.pod6:
19:19 dalek doc: Merge pull request #978 from zostay/splice-callable-args
19:19 synopsebot6 Link: http://doc.perl6.org/type/Array
19:19 dalek doc:
19:19 dalek doc: Resolves #977: Correct callable args on splice
19:19 dalek doc: review: https://github.com/perl6/doc/commit/0d4390fc47
19:23 kyclark joined #perl6
19:24 viki Could use more eyes for this PR: https://github.com/perl6/doc/pull/963
19:24 viki I don't like it, but maybe it's just me.
19:24 cale2 joined #perl6
19:24 cale2 hello world
19:25 viki \o
19:25 cale2 I downloaded the 64bit msi installer, but `perl6` and `panda` both don't show up in my command prompt
19:25 viki hm
19:25 cale2 My PATH was automatically modified as well. I confirmed that the variables are in the PATH
19:26 viki And does the modified PATH point to the location where the executables were installed to?
19:26 cale2 I downloaded and ran the 5th file down: http://rakudo.org/downloads/star/
19:27 viki Yeah, that looks right.
19:27 * viki needs to learn the Rakudo Star release process :(
19:27 viki Ignorance hurts :(
19:28 cale2 oops
19:28 viki ?
19:28 cale2 The MSI installed the path variables in my user path and not the system path
19:28 cale2 added it to system PATH and it works :)
19:29 viki \o/
19:29 RabidGravy HARR!
19:29 cale2 Does Perl6 have a built in JSON module?
19:29 RabidGravy no
19:29 cale2 I see a lot of JSON modules on the panda list, but where do I find what is already built in?
19:30 viki cale2: it technically does have a partial implementation of a JSON encoder, but it's internal and shouldn't be used.
19:30 RabidGravy the Rakudo Star has JSON::Fast
19:30 viki Yeah, JSON::Fast is good
19:30 cale2 Interesting. Is perl6 trying to stay away from cargo cults or does it not have a standard library?
19:30 harmil_wk viki: commented in a general sense about ordering of what I would introduce the user to first (e.g. the example first, then the explanation of the gory details)
19:30 nicq20 joined #perl6
19:31 harmil_wk cale2: Are those two disjoint
19:31 masak m: say to-json(42)
19:31 harmil_wk ?
19:31 camelia rakudo-moar ee8ae9: OUTPUT«42␤»
19:31 masak (and this gives a deprecation warning locally)
19:31 viki cale2: it comes with a couple of modules, like NativeCall and Test, but no "standard library" no.
19:31 masak m: say to-json([1, 2, { foo: 42}])
19:31 camelia rakudo-moar ee8ae9: OUTPUT«Can't serialize an object of type Block␤  in block <unit> at <tmp> line 1␤␤»
19:31 cale2 But Rakudo Star comes packaged with some of the more popular 3rd party modules?
19:31 masak m: say to-json([1, 2, { foo => 42 }])
19:31 camelia rakudo-moar ee8ae9: OUTPUT«[␤  1,␤  2,␤  {␤    "foo" : 42␤  }␤]␤»
19:31 viki cale2: correct.
19:31 masak argh, too much JavaScript lately ;)
19:31 cale2 Is there a list of modules that it comes with?
19:32 viki cale2: and ignore what masak is showing right now. That function is the internal one I mentioned and it was made even more internal. The bot just has deprecation warnings disabled.
19:32 harmil_wk cale2: that depends on what you mean by "modules that it comes with"... do you consider "Hash" to be a module it comes with? It's technically a module...
19:32 RabidGravy cale2, https://github.com/tadzik/Tas​k-Star/blob/master/META.info has the full list
19:33 viki harmil_wk: no, it's not a module.
19:33 viki m: use Hash;
19:33 camelia rakudo-moar ee8ae9: OUTPUT«===SORRY!===␤Hash is a builtin type, not an external module␤»
19:33 viki RabidGravy: is that still up to date tho?
19:33 cale2 I guess Panda won't double install something if you already have it, right?
19:34 RabidGravy viki, not sure
19:34 viki cale2: right
19:34 harmil_wk viki: Hash.pm is a module... it's just not user-"use"able. https://github.com/rakudo/rak​udo/blob/nom/src/core/Hash.pm
19:34 harmil_wk That was why I was asking for clarification
19:34 RabidGravy it's part of the core
19:34 cale2 Cheers to kyclark for his WIP book https://kyclark.gitbooks.io/metag​enomics/content/hello_world.html
19:34 viki harmil_wk: no it's not. That file is combined into a single huge setting file when you compile Rakudo
19:35 kyclark Thanks!
19:35 harmil_wk viki: I'm well aware how it's compiled, yes.
19:35 harmil_wk That module, that is :)
19:36 cale2 kyclark: are you not happy with any ports of perl5 web frameworks yet? I thought someone was porting mojo or something...
19:36 harmil_wk It's not really a Module object in the core, if that's what you mean
19:37 viki harmil_wk: I meant that it's not a module. It's a core type.
19:37 kyclark cale2: I still use P5/Mojo for web development.  I’m extremely tied to my tools like DBIx::Schema, SQL::Translator, DBI, DBD::mysql, and Mojolicious.  I will try to do my part to pull those along.
19:37 viki If you're so aware of how it's compiled, maybe you should not confused new users by asking them if they consider Hash.pm a module ~_~
19:37 harmil_wk Sigh, nevermind.
19:38 domidumont joined #perl6
19:38 kyclark http://blogs.perl.org/users/ken_youens-clar​k/2016/10/web-development-with-perl-5.html
19:39 viki Rage quit. nice.
19:39 sufrostico joined #perl6
19:39 RabidGravy boom!
19:40 RabidGravy shall I do an advent post?
19:40 viki RabidGravy: Yes!
19:40 masak RabidGravy: yes, please
19:40 RabidGravy and if so what
19:40 masak something you like
19:40 viki Anything
19:41 RabidGravy stuff
19:43 viki kyclark: FWIW Arrays are Cool and you don't need an explicit .elems on them
19:43 viki m: my @a = ^10; say 2 < @a < 20;
19:43 camelia rakudo-moar ee8ae9: OUTPUT«True␤»
19:43 viki m: my @a = ^10; say 2 < @a < 4;
19:43 camelia rakudo-moar ee8ae9: OUTPUT«False␤»
19:43 viki m: my @a = ^10; say @a+2;
19:43 camelia rakudo-moar ee8ae9: OUTPUT«12␤»
19:46 kyclark OK!
19:46 nicq20 Is there a way to see what threads/promises are currently running?
19:48 viki m: say $*SCHEDULER.queue.^methods
19:48 camelia rakudo-moar ee8ae9: OUTPUT«()␤»
19:48 viki :/
19:52 nicq20 I've been wandering the documentation for a while and have not found much about this.
19:52 viki .tell harmil_wk Well, I've read S11 and it states modules have "support for Perl 6 standard export semantics". Since you can't `use` Hash.pm, those export semantics are unavailable. If I'm wrong, tell me why—don't rage-quit.
19:52 yoleaux viki: I'll pass your message to harmil_wk.
19:54 viki nicq20: I see the scheduler has a .queue method onto which threads are pushed, but it doesn't appear to be something explorable from user code: https://github.com/rakudo/rakudo/blob/n​om/src/core/ThreadPoolScheduler.pm#L166
19:55 viki m: use nqp; start { sleep 4 }; say nqp::atpos($*SCHEDULER.queue,0)
19:55 camelia rakudo-moar ee8ae9: OUTPUT«(Mu)␤»
19:55 * viki shrugs
19:56 viki m: use nqp; start { sleep 4 }; say nqp::elems($*SCHEDULER.queue)
19:56 camelia rakudo-moar ee8ae9: OUTPUT«(signal SEGV)»
19:56 viki hehehe
19:59 ufobat joined #perl6
19:59 viki .u non-breaking
19:59 yoleaux U+00A0 NO-BREAK SPACE [Zs] ( )
19:59 yoleaux U+2011 NON-BREAKING HYPHEN [Pd] (‑)
20:00 nicq20 viki: Oh, well. Thank for your help! :)
20:00 viki nicq20: you can write your own scheduler tho
20:01 viki and stick it into $*SCHEDULER
20:02 nicq20 viki: Hmm... That could work. Make a new class and inherit the ThreadPoolScheduler?
20:02 viki m: my $*SCHEDULER = class :: is ThreadPoolScheduler { method cue (|) { say "cuing up stuff!"; nextsame;}}.new; await start { say "hi" };
20:02 camelia rakudo-moar ee8ae9: OUTPUT«cuing up stuff!␤hi␤»
20:02 viki w00t
20:05 tomaw joined #perl6
20:06 dalek doc: c4f9a3e | coke++ | doc/Language/unicode_entry.pod6:
20:06 dalek doc: smart quotes is 2 words
20:06 synopsebot6 Link: http://doc.perl6.org/language/unicode_entry
20:06 dalek doc: review: https://github.com/perl6/doc/commit/c4f9a3e4ce
20:06 dalek doc: 78c44e1 | coke++ | doc/Language/unicode_entry.pod6:
20:06 dalek doc: Perl 6 requires non-breaking space
20:06 synopsebot6 Link: http://doc.perl6.org/language/unicode_entry
20:06 dalek doc: review: https://github.com/perl6/doc/commit/78c44e12a1
20:07 viki [Coke]++ finishing stuff I keept forgetting to finish :)
20:09 Tonik joined #perl6
20:10 dalek mu: eb2607a | RabidGravy++ | misc/perl6advent-2016/schedule:
20:10 dalek mu: Update schedule
20:10 dalek mu:
20:10 dalek mu: Add an advent post
20:10 dalek mu: review: https://github.com/perl6/mu/commit/eb2607a27b
20:11 espadrine joined #perl6
20:12 bjz joined #perl6
20:23 AlexDaniel joined #perl6
20:28 [Coke] viki: what now?
20:28 viki [Coke]: ?
20:29 [Coke] what stuff did I do?
20:29 [Coke] (that you were going to finish?)
20:29 viki [Coke]: oh, I was running make xtest a couple of times and fixing those issues you fixed and kept forgetting about that terminal window
20:31 [Coke] ah. :)
20:34 AlexDaniel as for closing things just because nobody cared for them enough – I disagree. Having lots of issues open gives enough room for contributors. And I also don't see how it could be different from rakudo ticket queue (you're not going to say that we should close our eyes on bugs that are hard to solve, right?)
20:35 AlexDaniel though I do agree that we can start being slighly more aggressive when closing tickets, just a little bit
20:36 viki Having lots of issues open burns out contributors reading through hundreds of tickets that all end with indecision.
20:36 viki At least that's the case for me.
20:36 viki I think I went through ~400 tickets before I got fed up.
20:37 viki And it's not about "hard to fix" bugs. It's about tickets that don't really describe a bug or have a bunch of people "wondering" what would the right behaviour be.
20:39 viki Even to point to a ticket that I think describes a buggy behaviour: https://rt.perl.org/Public/Bug/Dis​play.html?id=130081#ticket-history
20:39 cpage_ joined #perl6
20:39 viki Well, it's marked with @LARRY and from what I understand TimToday himself claimed that was not a bug. So what's the goal of the ticket?
20:40 viki Is it to solicit more feedback? At which point will it be closed?
20:40 AlexDaniel to find another LARRY, I guess? It has been open for three days, leave it alone
20:40 viki What do you mean "you guess"? You opened it! What goal did you wish to achieve by opening the ticket?
20:42 masak I agree it's surprising behavior
20:42 masak but I also see where TimToady is coming from
20:43 viki masak: I don't. Why is the current behaviour not a bug?
20:43 masak basically, if you think grammars and backtracking are going to be best buddies, then you are very confused and need to look into that confusion
20:43 AlexDaniel Well, my goal is to get the thing fixed in some way. Now I see two ways: either fix it in rakudo, or document it as a trap. To fix it in rakudo we would need a some sort of a decision, which is kinda there given that there's a comment by Larry, so I'm kinda hoping somewhere deep in my heart that somebody is going to come and save the world
20:43 masak TimToady knows this very well
20:43 AlexDaniel or, as mentioned already, perhaps there will be some peer pressure ;)
20:43 masak I'm only slowly discovering it, the hard way
20:44 masak your (implied) proposed fix seems to be "well, make the grammar backtrack more!"
20:44 masak which seems misguided
20:44 viki Ah
20:44 masak good grammars don't backtrack all that much
20:45 [Coke] viki: I think part of the issue on that particular ticket (130081) is that larry's decision was linked to, not quoted. makes it harder to find. If larry said it's not a bug, it's not a bug, we can close it out.
20:45 masak doesn't look like a bug to me
20:46 masak basically, you managed to construct a grammar that does not manage its backtracking well. it's a kind of "doctor, it hurts when I do this", although I realize that's not fun to hear :)
20:46 * [Coke] leaves it to masak to close out. *tag*
20:46 AlexDaniel m: grammar G { regex TOP { ‘a’ || ‘abc’ } }; say G.parse(‘abc’)
20:46 camelia rakudo-moar ee8ae9: OUTPUT«Nil␤»
20:46 masak hah
20:46 AlexDaniel m: grammar G { rule TOP { ‘a’ || ‘abc’ } }; say G.parse(‘abc’)
20:46 camelia rakudo-moar ee8ae9: OUTPUT«「abc」␤»
20:46 AlexDaniel hmhm
20:46 viki :S
20:47 masak m: grammar G { regex TOP { <foo> }; regex foo { ‘a’ || ‘abc’ } }; say G.parse(‘abc’)
20:47 camelia rakudo-moar ee8ae9: OUTPUT«Nil␤»
20:47 viki Oh, .ws token
20:52 sufrostico joined #perl6
20:54 AlexDaniel masak: I think you've got a point, but I still don't understand this:
20:54 AlexDaniel m: grammar G { regex TOP { [ ‘a’ || ‘abc’ ] ‘z’ } }; say G.parse(‘abc’)
20:54 camelia rakudo-moar ee8ae9: OUTPUT«Nil␤»
20:54 AlexDaniel oops
20:54 AlexDaniel m: grammar G { regex TOP { [ ‘a’ || ‘abc’ ] } }; say G.parse(‘abc’)
20:54 camelia rakudo-moar ee8ae9: OUTPUT«Nil␤»
20:54 AlexDaniel m: grammar G { regex TOP { [ ‘a’ || ‘abc’ ] ‘z’ } }; say G.parse(‘abcz’)
20:54 camelia rakudo-moar ee8ae9: OUTPUT«「abcz」␤»
20:54 AlexDaniel so why is it ok to try another alternative in one case and not in another?
20:56 chris2 joined #perl6
20:58 masak I guess the difference is what happens strictly on the inside of the grammar, and what happens at its boundaries, like the extra ^ $ assertions added to the TOP rule from the outside
20:58 nicq20 AlexDaniel: Seems to work if you use a Junction instead of an OR.
20:58 arnsholt I thought .parse only anchored to the start?
20:59 AlexDaniel nicq20: because ‘abc’ will match first
20:59 nicq20 AlexDaniel: Oh, nm. Right.
20:59 masak nicq20: they're not exactly junctions in the regex slang, but you're right. that's because `|` doesn't work by backtracking
20:59 masak arnsholt: nope.
20:59 masak m: grammar G { regex TOP { ab } }; say G.parse("abc")
20:59 camelia rakudo-moar ee8ae9: OUTPUT«Nil␤»
20:59 kyclark joined #perl6
21:00 arnsholt Oh. Never mind me then =)
21:00 nicq20 masak: They are not Junctions?
21:00 cdg joined #perl6
21:01 cdg joined #perl6
21:04 masak nicq20: they are finite automata, shrewdly dressed up with the same syntax as (dis)junctions in the main language.
21:04 masak nicq20: I've always liked https://swtch.com/~rsc/regexp/regexp1.html for its clarity and simplicity. if you're curious for more details, I recommend it.
21:05 nicq20 masak: Well, I know what I'm doing for the next half-hour! :)
21:05 masak :)
21:06 masak fun fact: the person who wrote that also implemented big parts of the golang compiler infrastructure.
21:06 viki Aside from surprise, there's also an action-at-a-distance thing going on that I don't like. If I subclass a grammar and add a token with || in it, whether it works or not depends on what follows it. As a user, I was told `regex` backtracks and .parse() has an implied $ for a successful match. Do we lose anything by making it implied for all cases? I'm not buying the "you suck at grammars" as an excuse to have
21:06 viki this special exception
21:08 masak not saying anyone sucks. but grammars and backtracking are traditionally not a great combo.
21:09 nicq20 masak: Why not?
21:09 masak I wish I could explain why a bit better. to a first approximation, you want your parse time to be O(n) on the length of the parsed text, not O(2**n)
21:10 masak the latter is what you'll get with enough backtracking
21:10 AlexDaniel by the way
21:10 arnsholt Also, when you have many backtracking units interacting, they combine in non-trivial ways
21:10 arnsholt Which makes your grammar hard to reason about
21:11 masak imagine if your compiler slowed down by some factor of `k` for every character you added to your program. you'd call it a bad compiler.
21:11 AlexDaniel in case of [ ‘a’ || ‘abc’ ] ‘z’, how can I prevent it from trying ‘abc’ if ‘a’ matched?
21:11 masak this is why automata are great. because they "try all the alternatives at once".
21:12 arnsholt AlexDaniel: Wat? 'abc' can't match, unless 'a' matches
21:12 DrForr INTERCAL had something like that; you needed to have a certain preportion of 'DO'/'PLEASE DO' or it would randomly introduce slowdowns.
21:13 DrForr And if you've got enough cores it can search all the alternatives in constant time :)
21:13 AlexDaniel arnsholt: not sure what you mean
21:13 masak DrForr: no, it will simply fail to compile.
21:13 nicq20 The slow down makes sense. But why not have the "automata" be the way backtracking works anyway?
21:13 masak DrForr: you may be thinking of the dialects of INTERCAL that allow several `COME FROM` on the same label, though. a way to achieve threading.
21:13 nicq20 Err... I worded that wrong.
21:13 DrForr Oh, right. Still a slowdown in a certain sense :)
21:14 arnsholt AlexDaniel: 'a' is a prefix of 'abc'; so if 'abc' matches at a position 'a' will necessarily also match in that position
21:14 masak nicq20: there are two models at play here. one is the sequential/deterministic one, the other is the parallel/non-deterministic one.
21:14 masak nicq20: essentially, that's the difference between `|` and `||`
21:15 masak er, but the other way around :)
21:15 viki Which one is which?
21:15 Xliff Does rakudo have modules for HTTPS? HTTP::Client only supports HTTP.
21:15 DrForr You can also see it as 'a' followed by \lambda | 'bc' :)
21:15 RabidGravy yes
21:15 viki Xliff, I know LWP::Simple does HTTPS
21:15 AlexDaniel OK, now if that's OK and doesn't count as backtracking, why would .parse not do that as well?
21:16 Xliff viki: Thanks!
21:16 RabidGravy both LWP::Simple and HTTP::UserAgent will if IO::Socket::SSL is installed
21:16 AlexDaniel masak: that's the question to you I think, because you seem to understand it better
21:17 masak <masak> I guess the difference is what happens strictly on the inside of the grammar, and what happens at its boundaries, like the extra ^ $ assertions added to the TOP rule from the outside
21:17 masak AlexDaniel: ^
21:18 AlexDaniel to be honest I didn't understand it
21:18 masak let me rephrase it, then
21:18 masak to you, it seems like an unsightly exception to a rule
21:18 masak to me, it seems that you're expecting grammars to backtrack more than they actually can
21:19 AlexDaniel what do you mean by can? In case of [ ‘a’ || ‘abc’ ] ‘z’ it does without any issue
21:20 masak I mean "what are grammars for?" (not backtracking)
21:20 masak sorry, I'm not explaining this too well
21:21 masak but also, so far I notice (a) complaining that things are not consistent (b) no actual proposed solution :)
21:22 viki masak, I have proposed one. An implicit anchor to end of string
21:22 AlexDaniel ok, so instead of saying that it is not a bug we now admit that it is not consistent but say that we don't have a solution for it, that's an interesting step
21:22 AlexDaniel so yes, the solution is to have implicit $ on the TOP rule
21:22 AlexDaniel (or whatever the top rule is)
21:22 masak also also, for the record, I'm not defending the inconsistency as such -- more like explaining why it's not in the best interest of grammars to encourage more backtracking
21:23 viki And my question was: does that create a problem?
21:23 masak I think we used to have an implicit `$` on the TOP rule at some point.
21:23 masak might be mistaken, though.
21:23 masak the one to have this discussion with is actually pmichaud :)
21:23 AlexDaniel ah ok, there's an easy way to see
21:23 masak but pmichaud sightings are rare these days
21:23 AlexDaniel commit: all grammar G { regex TOP { 'a' || 'abc' }; }; say G.parse('abc')
21:24 committable6 AlexDaniel, https://gist.github.com/73a9​0f7f1264ba8e138a1ec14c0d8e02
21:24 viki :)
21:25 viki 2 years ago it seems
21:25 viki 3 even
21:25 AlexDaniel I have no idea what is going on in 2014.01,2014.02, but I guess we didn't
21:25 AlexDaniel ah
21:25 AlexDaniel it did partial match
21:25 viki ahhhh, right
21:25 masak did you end up finding a pmichaud commit at the other end? :)
21:26 AlexDaniel commit: all grammar G { regex TOP { 'a' || 'abc' }; }; say G.subparse('abc')
21:26 committable6 AlexDaniel, https://gist.github.com/d7ad​814da6933b860245dc9e132e7d1b
21:26 viki haha
21:26 AlexDaniel okay, I see
21:27 AlexDaniel so .parse was changed and its previous behavior was kept in .subparse
21:28 sufrostico joined #perl6
21:32 rurban joined #perl6
21:34 nicq20 Well looks like I'm going to use | instead of || in grammars.
21:36 masak correct.
21:37 seatek joined #perl6
21:39 AlexDaniel joined #perl6
21:40 AlexDaniel omg, laptop fell from my lap and turned off. While it was at it, it tipped over a full cup of tea
21:40 AlexDaniel /o\
21:41 RabidGravy :(
21:41 AlexDaniel now let's try to find this commit…
21:42 DrForr Its next step will obviously be to try to commit suicide by cop.
21:42 AlexDaniel okay
21:42 AlexDaniel https://github.com/rakudo/rakudo/commit/​4d8734d4bbdfbe71dc350ed51c520e092c27c0ff
21:44 nicq20 left #perl6
21:46 bjz joined #perl6
21:48 bjz joined #perl6
21:58 TEttinger joined #perl6
22:10 cale2 I hope grammars get a whole chapter in the new Learning Perl 6 book that was announced
22:10 sufrostico joined #perl6
22:10 sufrostico joined #perl6
22:13 firstdayonthejob joined #perl6
22:15 masak they definitely deserve to :)
22:18 AlexDaniel cale2: do you know about https://docs.perl6.org/language/grammar_tutorial ?
22:19 DrForr cale2: Yes, they will.
22:19 AlexDaniel I mean, what we have in our docs right now is perhaps less than awesome, but feel free to contribute
22:20 DrForr I still mean to write one, I just need to get the current projects straightened out.
22:20 DrForr cale2: There's also a sequence at theperlfisher.blogspot.ro.
22:21 cpage_ joined #perl6
22:25 kyclark joined #perl6
22:28 cale2 thanks for the tutorial links!
22:33 kyclark I’m going to introduce modules and OOP to my students on Thursday.  I’m a bit fuzzy myself on some of the details.  I would love feedback on this chapter: https://kyclark.gitbooks.io/metagen​omics/content/modules_and_oop.html
22:38 AlexDaniel kyclark: do you provide these files (e.g. DNA.pm6) separately in an archive or something?
22:38 kyclark Yes, in my Github repo https://github.com/kyclark/metagenomics-book
22:39 kyclark E.g. https://github.com/kyclark/metage​nomics-book/tree/master/perl6/oop
22:39 AlexDaniel kyclark: because it does not seem to be possible to copy the examples without the line numbers. Not an issue for me, I know how to delete that quickly, but for students it may be
22:39 AlexDaniel kyclark: so perhaps link it from the text or something
22:39 kyclark Right, I’m still not sure it’s the best way to have the line numbers.  I like to be able to comment on particular lines, but it’s much busier with them.
22:41 sufrostico joined #perl6
22:41 kyclark So I have to run do carpool, but I’ll leave my window open. Or email kyclark@gmail.com witih comments.  Much appreciated!
22:42 AlexDaniel kyclark: “Perl does automatically include” – “does not” ?
22:43 AlexDaniel ah alright I'll write an email
22:48 MasterDuke kyclark: "Here's an example a simple module" is missing an "of"
22:53 AlexDaniel MasterDuke: I'll include your message in my email
22:54 eivindgl joined #perl6
22:58 sufrostico joined #perl6
23:07 masak kyclark: my feedback is that I'd advice against doing `is Str` :)
23:08 masak (I'd go with composition instead of inheritance. not just in this case, but in many, many cases.)
23:10 masak though to your credit, you describe OO as "perhaps the most popular programming paradigm of the 90s" -- and inheritance was a big part of that hype ;)
23:13 masak but I claim that there's a more useful, responsible kind of OO that has grown since the 90s, and that prefers to do `has Str` rather than `is Str`
23:14 Actualeyes joined #perl6
23:30 cale2 masak: in kyclark's exact scenario here, isn't `is Str` the better data description? What is DNA? Well, it's a string of characters
23:31 timotimo but does DNA fit everywhere a Str does?
23:32 cale2 someone needs to write a comparison gist using composition with his code
23:33 cale2 I need to see the composition one side by side haha
23:35 rpburkholder joined #perl6
23:36 dj_goku what is the easiest way to print eof? thinking for IO::Socket::Async.
23:36 masak cale2: what timotimo said. generally, I find it safer to start from a "clean slate" the way composition does, and only gradually take on capabilities of Str when I see they make sense for DNA.
23:37 masak cale2: this is a heuristic, but... inheritance makes the most sense within a framework. but Str belongs to Perl 6 and DNA belongs to user code.
23:37 masak 'night, #perl6
23:40 stevieb joined #perl6
23:46 kyclark joined #perl6
23:50 kyclark Thanks for the comments.

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

Perl 6 | Reference Documentation | Rakudo