Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2017-01-07

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:00 notviki Yeah, I wish it didn't make me go to look at gist just to realize there's an error of some sort....
00:00 AlexDaniel e: +"a"
00:00 evalable6 AlexDaniel, rakudo-moar 5592db8: OUTPUT«(exit code 1) WARNINGS for /tmp/5asiWqWf3R:␤Useless use of "+" in expression "+\"a\"" in sink …»
00:00 evalable6 AlexDaniel, Full output: https://gist.github.com/10b5e07a60ab12bbe77d4af0b2c4b986
00:00 notviki Like "Error {first X number of characters of error}; see: http://"
00:00 AlexDaniel like this?
00:00 notviki e: $ = +"a"
00:00 evalable6 notviki, rakudo-moar 5592db8: OUTPUT«»
00:01 notviki e: sink +"a"
00:01 evalable6 notviki, rakudo-moar 5592db8: OUTPUT«(exit code 1) WARNINGS for /tmp/WpcFk5CsJz:␤Useless use of "+" in expression "+\"a\"" in sink …»
00:01 evalable6 notviki, Full output: https://gist.github.com/7e9f5ff7c15c9ad7209ce641e73eb734
00:01 AlexDaniel but that's on HEAD
00:01 notviki e: die "meow"
00:01 evalable6 notviki, rakudo-moar 5592db8: OUTPUT«(exit code 1) meow␤  in block <unit> at /tmp/1YYclH_bzN line 1␤»
00:01 notviki e: die "meowdsadasdasdsadsadasdasd asdasd asd asdasdsad asda sdas fsadgdsfghsdfgghdsfgh dsghgdfs hfsdghfsgh fsgh fgshsfg hgsfh sfgh sfg"
00:01 evalable6 notviki, rakudo-moar 5592db8: OUTPUT«(exit code 1) meowdsadasdasdsadsadasdasd asdasd asd asdasdsad asda sdas fsadgdsfghsdfgghdsfgh dsghgdfs hfsdghfsgh fsgh fgshsfg hgsfh sfgh sfg␤  in block <unit> at /tmp/pcz54nQP7J line 1␤»
00:01 * notviki has no idea lol :)
00:01 notviki But I guess yeah :)
00:01 notviki e: die "meow" x 1000
00:01 evalable6 notviki, rakudo-moar 5592db8: OUTPUT«(exit code 1) meowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeow…»
00:01 evalable6 notviki, Full output: https://gist.github.com/5b7fe2e0946eff5bfd85a67cbf29e8e9
00:01 notviki Yeah :D That
00:02 AlexDaniel notviki: ok: https://github.com/perl6/whateverable/issues/89
00:03 notviki cool
00:06 notviki hm... seek before start of file throws but seek past end of file doesn't throw
00:06 notviki Is that normal?
00:06 raschip Soon we will have a library to share code between the bots.
00:07 AlexDaniel raschip: what do you mean by that?
00:07 notviki All the Whateverables share code
00:07 AlexDaniel yup
00:07 AlexDaniel evalable6: source
00:07 evalable6 AlexDaniel, https://github.com/perl6/whateverable
00:07 AlexDaniel bisectable6: source
00:07 bisectable6 AlexDaniel, https://github.com/perl6/whateverable
00:07 notviki :)
00:07 raschip That will upset cinap_lenrek.
00:08 AlexDaniel notviki: what if I just make evalable answer on mc: ?
00:08 notviki Why not fix it for all bots? :)
00:09 AlexDaniel c: all say rand x 25
00:09 b2gills cinap_lenrek: One of the uses mentioned here for Perl 6 is to test C code presumably because NativeCall is so easy to use.
00:10 committable6 AlexDaniel, https://gist.github.com/6e5c6771f5644f8fa118615208f7e230
00:10 AlexDaniel notviki: how would you print this kind of stuff partially?
00:10 notviki For that you wouldn't
00:11 raschip .u ♥????
00:11 yoleaux U+2665 BLACK HEART SUIT [So] (♥)
00:11 AlexDaniel so if there are more than one commit to test, it shouldn't?
00:11 AlexDaniel u: ♥????
00:11 unicodable6 AlexDaniel, U+1F98B BUTTERFLY [So] (????)
00:11 unicodable6 AlexDaniel, U+2665 BLACK HEART SUIT [So] (♥)
00:11 notviki AlexDaniel: here's the usecase that I encounter: I type some code I want to test, but I make a typo or some error. It gives me the URL. I go open it expecting results, but it just tells me I messed up my query. So I go back, do it again, and it again gives me the URL, again with some error instead of actual result
00:12 AlexDaniel notviki: yea, I understand that
00:12 raschip Why do we need the ruby bot?
00:13 notviki Crap. My tests for Seek* are failing for SeekFromCurrent :S
00:13 AlexDaniel raschip: we don't need it for .u
00:13 AlexDaniel raschip: but there are other commands like .tell
00:13 AlexDaniel raschip: and I don't think we have a perl 6 bot for that yet
00:14 raschip I member now.
00:14 AlexDaniel raschip: also, we don't really know who hosts yoleaux…
00:15 AlexDaniel we would have to take its database to make sure all messages are delivered
00:17 raschip Thanks for the explanation!
00:17 BenGoldberg joined #perl6
00:18 jp___ joined #perl6
00:19 raschip AlexDaniel++
00:23 jp___ Hi,
00:23 jp___ I'm trying to use a perl6 grammar inside another one. You will find my testcase at :
00:23 jp___ https://gist.github.com/anonymous/76ed6fad77d42e8daf444a1bdb7c46fb.
00:23 jp___ Unfortunately, when running this code,I get the error message :
00:23 jp___ Cannot assign to a readonly variable or a value
00:23 jp___ Any idea ?
00:23 jp___ Many thanks for your help.
00:24 notviki heh... smart of you to write at the top of the file to throw off error message line numbering :P
00:25 jp___ sorry
00:25 notviki prolly this one: https://gist.github.com/anonymous/76ed6fad77d42e8daf444a1bdb7c46fb#file-gistfile1-txt-L49
00:26 notviki m: grammar Foo { token TOP { .+ } }; Foo.parse: "xxx", :actions(class { method TOP($/) { Foo.parse: "yyy" } })
00:26 camelia rakudo-moar 5592db: OUTPUT«Cannot assign to a readonly variable ($/) or a value␤  in method TOP at <tmp> line 1␤  in any !reduce at /home/camelia/rakudo-m-inst-2/share/nqp/lib/QRegex.moarvm line 1␤  in any !cursor_pass at /home/camelia/rakudo-m-inst-2/share/nqp/lib/QRegex.moar…»
00:26 notviki m: grammar Foo { token TOP { .+ } }; Foo.parse: "xxx", :actions(class { method TOP($z) { Foo.parse: "yyy" } })
00:26 camelia rakudo-moar 5592db: ( no output )
00:26 notviki yup
00:26 jp___ the problem  is  at the following line  in fct :  my $result= NVL.parse($sql, :act).made ;
00:26 notviki jp___: .parse sets the $/, so don't use it as the name of the match you're receiving
00:26 notviki use some other var
00:26 AlexDaniel make $result ~= $<textfin>;
00:26 AlexDaniel what's that?
00:26 notviki jp___: like $foo, and then you'd access its guts as $foo<sql><sqltext>.made;
00:27 notviki Yeah, the make'age on this line looks odd: https://gist.github.com/anonymous/76ed6fad77d42e8daf444a1bdb7c46fb#file-gistfile1-txt-L29
00:27 raschip jp___: I like that you wrote the problem at the top of the test file, but it would be better if you made it into a comment and kept the shebang on top.
00:28 notviki m: grammar Foo { token TOP { .+ } }; Foo.parse("xxx", :actions(class { method TOP($z) { make "foo"; make "bar"; } })).made.say
00:28 camelia rakudo-moar 5592db: OUTPUT«Cannot bind attributes in a Nil type object␤  in method TOP at <tmp> line 1␤  in any !reduce at /home/camelia/rakudo-m-inst-2/share/nqp/lib/QRegex.moarvm line 1␤  in any !cursor_pass at /home/camelia/rakudo-m-inst-2/share/nqp/lib/QRegex.moarvm line 1…»
00:28 notviki m: grammar Foo { token TOP { .+ } }; Foo.parse("xxx", :actions(class { method TOP($/) { make "foo"; make "bar"; } })).made.say
00:28 camelia rakudo-moar 5592db: OUTPUT«bar␤»
00:28 notviki right
00:28 notviki jp___: `make` will store only the latest call in the match object so you calling make multiple times on that line is useless I think
00:29 notviki jp___: and back using $foo instead of $/ in that one pace; there you'd need to $foo.make: "whatever"; instead of just calling `make` because that routine defauls to `$/`
00:30 jp___ You can find the code without any comment at https://gist.github.com/anonymous/710b65b90fbc8244d39cb6086d151fdc. Soory again
00:30 notviki :)
00:31 raschip jp___: Don't be sorry, the explanation was a good idea.
00:32 jp___ Thanks
00:32 notviki Is .readchars supposed to move the current position (the .tell)?
00:33 notviki oh yeah, it does
00:33 notviki wtf...
00:33 jp___ ;)
00:33 notviki Seems .readchars moves the .tell position, but any subsequent .readchars still use the original positions :S
00:33 notviki dammit
00:34 notviki And it's absolutely not tested
00:34 notviki (yet documented)
00:36 * notviki switches to .read() for the purpose of this test
00:40 notviki yey all pass \o/
00:49 notviki jp___: you saw the answers for your problem above, right?
00:49 notviki We got kinda noisy... just making sure you saw them :)
00:51 cibs joined #perl6
01:01 [Coke] notviki: we need a doc tag for things: "Version" (which could now contain "6.c", "speculative")
01:01 cpage_ joined #perl6
01:02 [Coke] that would allow us to start doc'ing 6.d in advance of a release, and to doc things that are in roast master but not 6.c
01:02 notviki Yeah
01:02 [Coke] (or even "rakudo" for things like dd)
01:03 notviki yeah
01:07 [Coke] let me finish the bootstrappening, we'll have a nice button or something we can show then.
01:07 notviki \o/
01:18 bjz joined #perl6
01:31 dalek joined #perl6
01:37 mr_ron joined #perl6
01:42 mr_ron left #perl6
01:50 dugword joined #perl6
01:57 SmokeMachine does the class Slang do anything?
01:57 SmokeMachine but gist()?
02:01 SmokeMachine https://github.com/rakudo/rakudo/blob/beec02a6fa69e3ac290b4dd24c07d87a9f248b13/src/core/Slang.pm
02:10 cinap_lenrek left #perl6
02:11 eiro joined #perl6
02:13 FROGGS_ joined #perl6
02:14 aindilis joined #perl6
02:17 jhg joined #perl6
02:32 kalkin-_ joined #perl6
02:36 [Coke] $ perl6 -e 'run("perl6", "-e", "say 3", :out).out.say' # shouldn't this output 3?
02:36 [Coke] It's blank here.
02:39 dugword m: run("perl6", "-e", "say 3", :out).out.say
02:39 yoleaux 3 Jan 2017 19:26Z <notviki> dugword: The test you added seems to hang on my VM. It prolly doesn't have IPv6 support. Do you know how to detect that and only run the test on boxes where it would not hang? I fudged it for now in https://github.com/perl6/roast/commit/b3d3a736ee
02:39 camelia rakudo-moar ecde66: OUTPUT«run is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting line 1␤  in sub run at src/RESTRICTED.setting line 14␤  in block <unit> at <tmp> line 1␤␤»
02:40 dugword Thanks for the heads up, detecting IPv6 was what started me down the rabbit hole of doing the work on IO::Socket::INET. I'll take a looi
02:40 dugword look
02:42 khw joined #perl6
02:46 hobbs [Coke]: I think .say is trying to print something into the pipe
02:46 hobbs perl6 -e 'run("perl6", "-e", "say 3", :out).out.slurp-rest.print'
02:46 hobbs (or .say, but then you get double the newline)
02:46 geekosaur hobbs, actually it's trying to .say the pipe itself
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:53 notviki No, it's calling IO::Handle.say without any args, so it just prints the newline
02:54 notviki s: run("perl6", "-e", "say 3", :out).out, 'say', \()
02:54 SourceBaby notviki, Sauce is at https://github.com/rakudo/rakudo/blob/ecde669/src/core/IO/Handle.pm#L686
02:54 notviki yup
02:59 notviki wonder if there's any way to make it cry about stuff going the other way in teh pipe
03:03 timotimo here's a fun one for you: stdin, stdout, and stderr tend to all be the tty a program is launched by. so all of them can be read from and written to.
03:04 timotimo put that in your smoke and pipe it.
03:04 notviki heh
03:08 geekosaur also *BSD pipes are bidirectional socketpairs
03:09 geekosaur (and some programs use this)
03:12 samcv writing to stdin?
03:12 samcv what does that *do*
03:12 geekosaur (but OS X went back to using traditional pipes in 10.3 or 10.4)
03:12 samcv i mean it makes sense it's possible. but is it just usually unused?
03:13 geekosaur on a tty? it writes to the terminal
03:13 geekosaur and yes it
03:13 samcv writes where to terminal
03:13 samcv appear as stdout or stderr or neither?
03:13 samcv obviously it writes to it since you are writing to the pipe
03:14 geekosaur pyanfar Z$ echo hi >&0
03:14 geekosaur hi
03:14 notviki :o
03:14 geekosaur controlling tty is by convention opened O_RDWR onto fd 0 and F_DUPFD-d onto 1 and 2
03:14 samcv sounds useful to abuse when you need more than just stderr and stdout
03:15 geekosaur there have historically been a few programs that use this (notably, original BSD "more" read commands from stderr so it would work on a pipe)
03:16 geekosaur (newer pagers are more likely to open /dev/tty directly, but there's probably a few that still do the same trick)
03:16 samcv wait but isn't reading stderr normal. it's just writing to it usually only happens one way
03:16 geekosaur no, programs write to stderr
03:16 samcv depending on uh which side you're on
03:16 samcv oh you mean from perspective of the tty
03:17 geekosaur we're talking about the side which normally assumes fd 0 is read and fds 1 and 2 are write
03:17 samcv yeah
03:17 geekosaur if it's the controlling tty, all three are actually read/write
03:17 geekosaur so /bin/more whch would normally only write to stderr actually read from it after the --More-- prompt
03:18 geekosaur if isatty(2)
03:18 geekosaur actually, hm, probably used stdout since if it's not to a tty then it should act like cat anyway
03:18 geekosaur no need to defer to stderr
03:23 xtreak joined #perl6
03:27 hobbs notviki: yeah, that makes sense to me at least.
03:35 llfourn joined #perl6
03:40 pierrot joined #perl6
03:41 llfourn joined #perl6
03:43 cibs joined #perl6
03:59 cibs joined #perl6
04:24 Actualeyes joined #perl6
04:27 geekosaur joined #perl6
04:30 geekosaur joined #perl6
04:35 Actualeyes left #perl6
04:36 geekosaur joined #perl6
04:56 cdg joined #perl6
05:18 pierrot joined #perl6
05:27 shayan_ joined #perl6
05:27 bjz_ joined #perl6
05:32 AlexDaniel joined #perl6
05:33 faraco joined #perl6
05:33 faraco hi, is there any precompiled HTML perl6 documentation anywhere?
05:37 shayan_ joined #perl6
05:43 faraco hi
05:51 Cabanossi joined #perl6
05:55 shayan_ joined #perl6
05:57 xtreak joined #perl6
06:18 baest joined #perl6
06:21 CIAvash joined #perl6
06:26 faraco joined #perl6
06:27 faraco hi, do perl6 have `use strict`?
06:27 faraco in perl5, you have them. How about perl6? Does perl6 need it at all?
06:30 samcv perl 6 has it by default faraco
06:30 samcv also there is a precompiled single page html file if you don't want to build the docs yourself but i forget where online it is
06:32 faraco samcv: oh I see, thanks samcv.
06:32 samcv if you have like some time you can build it yourself though
06:33 samcv just clone/download https://github.com/perl6/doc and then run `make bigpage`
06:33 faraco samcv: about the html, I got some problems with compiling the p6doc (html compiling).
06:33 faraco oh
06:33 samcv what were the problems?
06:33 samcv maybe I can help
06:34 faraco that was a month ago, I don't know about now. Maybe, I spoke too soon. Let me give it another test, and see where its going.
06:34 samcv ok thanks :)
06:35 samcv you want it with syntax highlighting?
06:36 faraco I don't really mind about highlighting. When in my first time trying to compile the doc, it fails so badly.
06:37 samcv ok what command are you running?
06:37 faraco maybe, I downloaded it at the wrong time (deps broken or similar issue)
06:37 samcv do you want it on one page? or want to be able to browse the site locally
06:37 samcv what is nice is you can run the .pl file and access 127.0.0.1 and browse it on your computer when you don't have internet
06:38 bjz joined #perl6
06:38 samcv but make html if you want: bigpage and html normal
06:39 samcv and run make htmlify if you don't want bigpage and just want like docs.perl6.org has
06:39 samcv run make bigpage if you just want the bigpage (don't think that syntax highlights by default? not 100% sure)
06:39 faraco samcv: if I want a single page, wouldn't it be so heavy and laggy to open?
06:39 samcv yes
06:39 samcv haha
06:39 samcv at least i think so. my laptop is an x220
06:40 samcv maybe would be nicer on a faster computer but. i usually just `make html`
06:40 ChoHag joined #perl6
06:42 faraco so, bigpage is single html, and make htmlify is like an organized html? like in the perl6 link?
06:42 samcv yeah
06:42 faraco oh alright, thanks. I'll try that out.
06:42 samcv k thanks; let me know if you have any issues.
06:45 faraco okay, currently running `make htmlify`. Runnin' good so far. Erm, the loadDep part looks like npm interface.
06:46 samcv yeah the highlighter runs on node https://github.com/perl6/atom-language-perl6
06:46 samcv i wrote that part of it at least
06:47 faraco A question about CPAN and Perl 6. The official page says that I can upload Perl 6 distribution to CPAN (using the option). But how about installation? is `cpan Perl6::This::Module` enough to install those modules under .rakudobrew modules dir?
06:47 faraco samcv: wow, you a maintainer of the doc?
06:48 samcv well i have been working on rakudo and moarvm and the docs and i'm the lead dev for the highlighter
06:48 samcv but that also as well
06:48 faraco how long you been involved in Perl 6? Perl 6 looks promising as a language.
06:48 samcv uhm
06:48 samcv a few months
06:49 faraco and any chance with Perl 5?
06:49 faraco I'm a beginner to both.
06:49 samcv what do you mean any chance?
06:49 faraco I meant, do you also used to program in Perl 5
06:50 samcv yeah
06:50 faraco for years?
06:50 samcv i'm fairly newish to perl 5 though. no
06:50 samcv like a year
06:50 faraco Oh. I just maybe 3 months.
06:50 samcv i guess i've been programming perl 6 for like 3 4 months?
06:51 samcv and started like rapidly submitting PR like 2 months ago :) and became the newest core dev like a week and a half ago :-D
06:51 faraco erm, I got an error in the building part. npm WARN perl6-highlights@1.0.0 No repository field.
06:51 faraco ./util/compile-sass.sh
06:51 faraco that error
06:51 samcv yeah that's fine
06:51 faraco Need either 'sass' command or CSS::Sass Perl 5 module
06:51 faraco Makefile:23: recipe for target 'sass' failed
06:51 faraco make: *** [sass] Error 1
06:51 samcv oh
06:51 samcv ok you will need to install that perl 5 module
06:52 faraco oh
06:52 faraco okay, let me try
06:52 samcv css::sass. the npm error you can ignore and maybe i should just fix somehow
06:53 faraco Do you have any blog about Perl6 that I can follow? I want to invest my time in Perl family language as much as possible.
06:54 samcv i have a few blog posts here https://cry.nu/
06:54 samcv should probably blog soon about some unicode stuff i've been improving in perl 6 :D lots of unicode fixes to moarvm :-D
06:54 faraco thanks, bookmarked it.
06:55 samcv if you want a good intro to concurrency and things to do/not to do, i think what I wrote is good
06:55 samcv and then the docs can help you out from there, but it gives you a good intro
06:56 dugword joined #perl6
06:57 faraco My knowledge about concurrency is lacking. I don't know if it's useful for CLI applications and desktop applications. I mean, I might need to learn concurrency eventually.
06:57 samcv i would read my two blog posts on it. give you some info
06:57 samcv and they're pretty short
06:59 faraco Is these concurrency stuff meant, that you can do 10 things in the exact same time?
07:00 samcv i mean they are meant to be able to speed things up
07:01 geekosaur joined #perl6
07:02 faraco how it can improve speed? In a nutshell?
07:04 samcv by doing things in parallel it can make it faster, but a big part is also being able to trigger other events by when certain blocks complete
07:05 samcv good for anything needing to be responsive to any kind of user input. like for irc bots or other things
07:05 faraco or online games. Oh now, I see why the hype about the websockets.
07:07 faraco so, traditionally, between a server a user, server always check for input even the user idle? So it use more resources?
07:07 samcv yeah
07:08 faraco and with parallel, if the user input anything, it also somehow triggers server that is previously idle.
07:08 faraco and we can save resources ultimately.
07:08 samcv yeah
07:08 faraco oh, I see the idea now. Thanks.
07:08 samcv and do other things in the mean time
07:08 samcv so you can be doing some things in the background and then easily trigger some thing on captured user input.
07:10 faraco oh, so we can use the resource for something else, instead of wasting them to check for input.
07:11 samcv well also the programmer can easily not have to worry about how to do it. if it's easily available
07:12 samcv i mean there's ways to do it in C as well, but they aren't very easy comparatively
07:12 faraco erm, is there any requirements to PR your modules into perl6 repo? I mean, even it's gonna be like pointless, (looking at Acme::Bleach).
07:13 samcv heh mostly no
07:21 faraco I want to practice perl 6 by porting, but I heard about Inline::Perl6
07:22 moritz it still make sense to port modules
07:22 moritz then you can adapt them to take advantage of Perl 6's features and write more idiomatic APIs, for example
07:23 pecastro joined #perl6
07:25 samcv the perl 6 code is often much more maintainable and simple in my experience
07:25 samcv and may be half the length
07:38 domidumont joined #perl6
07:45 domidumont joined #perl6
07:52 ChoHag joined #perl6
07:52 RabidGravy joined #perl6
07:55 wamba joined #perl6
08:11 xtreak joined #perl6
08:13 faraco_ joined #perl6
08:13 faraco_ hi again
08:13 faraco_ about compiling the perl6 doc is now, bad for me.
08:13 faraco_ I don't have enough memory.
08:15 faraco_ My others programs and my pc basically jammed for half an hour, until I reboot.
08:16 faraco_ where can i get the precompiled p6doc html/pdf to read offline.
08:16 faraco_ I can do wget -c -r perl6 doc web, but I'm afraid the organization of the files will be ruined.
08:17 dalek doc: 331472d | samcv++ | / (2 files):
08:17 dalek doc: Only alter filenames based on disallowed filenames per distro
08:17 dalek doc:
08:17 dalek doc: Unixish systems only convert names that have a `/` in them, and on
08:17 dalek doc: Windows replace those which have:
08:17 dalek doc: / ? < > : * | " \
08:17 dalek doc: review: https://github.com/perl6/doc/commit/331472d0bf
08:17 dalek doc: 93db5f6 | samcv++ | app.pl:
08:17 dalek doc: Make sure we only correct `::` into $COLON$COLON on MSWin
08:17 dalek doc: review: https://github.com/perl6/doc/commit/93db5f69ed
08:18 samcv uhm faraco_
08:18 samcv are you on linux or windows
08:18 faraco_ I'm on linux.
08:20 faraco_ why?
08:20 samcv i'll just upload it to my server in a .tar file
08:21 faraco_ oh thanks
08:21 samcv i just built it
08:22 samcv to make those changes you just saw in the log. that's why was asking to make sure you had linux
08:22 samcv cause now uses some illegal characters in windows when you build on linux
08:22 faraco_ oh, I see
08:22 samcv see: https://docs.perl6.org/type/IO$COLON$COLONHandle
08:22 samcv look at that terrible url name :(
08:23 faraco_ ah yeah
08:23 faraco_ sigils
08:23 samcv i mean the sigils are just what it's replaced with, but.
08:23 samcv it's just replaced because you can't have colon's in files on NTFS
08:23 samcv they're not variables or anything
08:24 * samcv hopes this doesn't break things tho
08:24 faraco_ the maintainer of the web had to do something then.
08:24 faraco_ site*
08:24 samcv hmm?
08:24 faraco_ I mean, the URL?
08:25 faraco_ I think I lost here.
08:25 samcv well no, building the page saves the files that way
08:25 samcv because they are illegal on windows
08:25 samcv they're static files
08:26 faraco_ oh, so when you built them on windows, the system will reject the files with those sigils in the file names?
08:26 samcv yeah
08:26 samcv well not the sigils
08:26 samcv but actual ::
08:26 faraco_ the colon?
08:26 samcv colons
08:26 samcv yes
08:26 samcv $ are allowed
08:26 faraco_ oh
08:27 samcv has nothing to do with variables at all, that's just what it ended up replacing it with
08:27 faraco_ hmm
08:27 samcv to work around windows not letting you do that
08:28 samcv on linux only / is disallowed by the OS (though technically not by the file system)
08:28 samcv but you wouldn't be able to access the file if it had a / in the name on disk
08:29 faraco_ ah I see
08:29 faraco_ I'm pretty shocked..
08:29 faraco_ actually
08:29 faraco_ a quick google search
08:30 faraco_ site:https://docs.perl6.org/ xhtml
08:30 samcv hm?
08:30 faraco_ found the precompiled html
08:30 samcv faraco_, https://cry.nu/files/doc.tar.xz
08:30 samcv oh ok
08:31 samcv anyway there it is if you want it non-onepage
08:31 samcv how much ram did it end up using faraco_ ?
08:31 faraco_ samcv: pretty much to make everything stop blinking and moving.
08:32 faraco_ mine only 32 bit
08:32 samcv how much is that though
08:32 faraco_ I can't really say how much, I can't even open tty to check memory.
08:32 samcv i mean how much do you have at least?
08:32 faraco_ oh
08:32 faraco_ 1GB
08:34 faraco_ okay, thanks samcv for the tar.
08:34 faraco_ I gonna download both, and make them as my reference.
08:35 faraco_ the perl6 web or the github doc repo, should mention the precompiled html link.
08:35 faraco_ In case, someone has a situation like me
08:35 faraco_ where everything gonna be jammed at one point.
08:36 samcv i'll try and add that to the docs page faraco_
08:36 samcv perl 6 web has a link SOMEWHERE not sure where tho
08:37 faraco_ how about this? https://docs.perl6.org/perl6.xhtml
08:37 rpburkholder joined #perl6
08:37 faraco_ I don't know about non single page.
08:37 samcv there is no non-single page
08:38 faraco_ ah
08:39 faraco_ anyway, thanks for guiding me samcv.
08:42 RabidGravy I've wondered about those dodgy URIs before, Would it be possible to do a rewrite so it can have the original characters in the URI but the munged name on disk?
08:42 samcv it already does a rewrite
08:42 samcv on the server
08:42 samcv err
08:42 samcv wait so i might be breaknig things
08:43 samcv maybe
08:43 samcv we will see when they rebuild on the server
08:43 samcv i mean we'd need the links on the pages to have the nice url's and such
08:44 samcv we already rewrite :: to $COLON$COLON (not sure if it only rewrites if the file is missing or not)
08:44 samcv ok yeah i broke the site
08:44 samcv it redirects to dodgy url
08:45 dalek doc: cdbf2f5 | samcv++ | app.pl:
08:45 dalek doc: Revert "Make sure we only correct `::` into $COLON$COLON on MSWin"
08:45 dalek doc:
08:45 dalek doc: This reverts commit 93db5f69ed7b39908480274d810aae0e0589ed26.
08:45 dalek doc: review: https://github.com/perl6/doc/commit/cdbf2f51d9
08:45 dalek doc: 5e284b0 | samcv++ | / (2 files):
08:45 dalek doc: Revert "Only alter filenames based on disallowed filenames per distro"
08:45 dalek doc:
08:45 dalek doc: This reverts commit 331472d0bfb1f07def0fb978846afb33b197c1b6.
08:45 dalek doc: review: https://github.com/perl6/doc/commit/5e284b02cc
08:45 samcv i guess we will have to alter the server to do the opposite
08:45 samcv to redirect $COLON$COLON to ::
08:45 samcv so all current links from other pages will still work
08:45 samcv at the same time we make this change
08:47 samcv dopey perl 6 has great Unicode support but can't even use colons in html page url's! sad!
08:47 RabidGravy sure it can
08:49 RabidGravy is the apache config for the server on github somewhere?
08:49 samcv well it _can_ but
08:49 samcv idk RabidGravy
08:50 samcv we do it by htaccess atm i think
08:50 samcv so whoever runs that server
08:50 samcv there's no .htaccess file in the docs github project
08:59 llfourn joined #perl6
09:02 dugword joined #perl6
09:17 astj joined #perl6
09:18 RabidGravy I flirted with the idea of making a IBM MQ client binding this weekend but I think I'll just put it on the bottom of the TODO pile
09:21 ChoHag joined #perl6
09:30 llfourn joined #perl6
09:34 rindolf joined #perl6
09:38 RabidGravy there's something going on with the "lexical use" wrt to GTK::Simple which I don't quite understand
09:40 RabidGravy in the https://github.com/perl6/gtk-simple/blob/master/examples/01-hello-world.pl6 it complains about not finding the GTK::Simple::App but *not* the other types
09:42 dalek ecosystem: 11eacc7 | (Asato Wakisaka)++ | META.list:
09:42 dalek ecosystem: [SQL-NamedPlaceholder] Change META.info to META6.json
09:42 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/11eacc744c
09:45 RabidGravy ????
09:49 Tonik joined #perl6
09:51 dalek perl6.org: 4501ae5 | (Naoum Hankache)++ | / (3 files):
09:51 dalek perl6.org: standardize links to the docs
09:51 dalek perl6.org: review: https://github.com/perl6/perl6.org/commit/4501ae5ffc
09:51 dalek perl6.org: 47b85f3 | (Juan Julián Merelo Guervós)++ | / (3 files):
09:51 dalek perl6.org: Merge pull request #70 from hankache/master
09:51 dalek perl6.org:
09:51 dalek perl6.org: standardize links to the docs
09:51 dalek perl6.org: review: https://github.com/perl6/perl6.org/commit/47b85f3505
09:55 nowan joined #perl6
10:04 rindolf joined #perl6
10:07 andrzejku joined #perl6
10:08 andrzejku joined #perl6
10:22 dalek gtk-simple: a0b79e1 | RabidGravy++ | examples/ (9 files):
10:22 dalek gtk-simple: Ensure the examples have "use GTK::Simple::App"
10:22 dalek gtk-simple:
10:22 dalek gtk-simple: Fixes #73
10:22 dalek gtk-simple: review: https://github.com/perl6/gtk-simple/commit/a0b79e1847
10:22 dalek gtk-simple: eec866c | RabidGravy++ | README.md:
10:22 dalek gtk-simple: GTK::Simple::App not in README synopsis
10:22 dalek gtk-simple:
10:22 dalek gtk-simple: Fixes #73
10:22 dalek gtk-simple: review: https://github.com/perl6/gtk-simple/commit/eec866cefb
10:31 bartolin joined #perl6
10:45 dalek doc: 24b5ad8 | samcv++ | doc/Language/quoting.pod6:
10:45 dalek doc: Fix highlighting on /language/quoting page
10:45 dalek doc: review: https://github.com/perl6/doc/commit/24b5ad8f1f
10:45 synopsebot6 Link: http://doc.perl6.org/language/quoting
10:46 samcv hmm RabidGravy
10:46 samcv i have never used IBM MQ
11:01 nullmove joined #perl6
11:02 RabidGravy you haven't missed much, it does one thing in that IBM way of making everything like an old-school mainframe application and it does it quite well
11:02 samcv heh
11:04 confundus joined #perl6
11:05 RabidGravy my motivation for making a client in Perl 6 is that at work currently we have a weird middleware written in Scala to communicate between a Perl application and a IBM MQ
11:07 RabidGravy I'm firmly convinced that this is the kind of application domain that Perl 6 will excel at
11:12 RabidGravy I've got the start of some "message oriented middleware" thing knocking around somewhere
11:13 llfourn joined #perl6
11:19 regnarg joined #perl6
11:25 sjoshi joined #perl6
11:26 astj joined #perl6
11:28 Actualeyes joined #perl6
11:35 mr-foobar joined #perl6
11:53 Gasher joined #perl6
12:03 cosimo_ morning folks
12:03 cosimo_ $morning
12:04 RabidGravy morning
12:05 cosimo_ anybody wrote/writing chat bots in perl6 ?
12:05 RabidGravy well it's actually just turned afternoon here but hey
12:06 cosimo_ and, a OAuth[12] client?
12:07 RabidGravy there are IRC bots, I think the majority of the bots here are written in Perl 6 now
12:08 RabidGravy I wrote just enough of OAuth to get Webservice::Soundcloud working, but there's also https://github.com/bduggan/p6-oauth2-client-google
12:08 cosimo_ irc bots code is published somewhere?
12:09 RabidGravy I guess there is enough out there to make something more generic, I thought someone was working on one
12:10 RabidGravy https://github.com/perl6/whateverable
12:11 RabidGravy but they all use IRC::Client I think
12:11 cosimo_ https://github.com/TiMBuS/Net--IRC/ seems to be it
12:12 cosimo_ ah, IRC::Client
12:12 cosimo_ RabidGravy: thanks
12:17 RabidGravy yeah IRC::Client seems to get a reasonable workout :)
12:19 cosimo_ RabidGravy: your oauth code published too?
12:20 RabidGravy yeah, it's in https://github.com/jonathanstowe/WebService-Soundcloud/tree/master/lib/WebService
12:20 RabidGravy I keep meaning to break it out into a separate module
12:20 RabidGravy but keep finding reasons not to
12:20 RabidGravy but feel free to take what you want
12:21 cosimo_ need a Slack client, so maybe that's the opportunity
12:23 cosimo_ what does '%params.push: %args.pairs;' mean? %params = (%params, %args) ?
12:24 cosimo_ later in the code there's also a '%params = %params, %args;'
12:26 RabidGravy yes
12:29 RabidGravy I haven't looked at that code for ages,  I think it could probably do with some love to be honest
12:33 ChoHag joined #perl6
12:37 RabidGravy Hmm there are the emails from IBM, I wonder which of these stupid filter rules is hiding them from me
12:38 faraco joined #perl6
12:39 faraco hi, a question about Perl 6. There is return keyword. What is the point of using them in subroutine, if the return value is returned automatically?
12:40 faraco without using `return` of course.
12:40 jnthn When you want to return from somewhere other than at the end of the subroutine?
12:40 wamba joined #perl6
12:40 faraco for example?
12:41 jnthn sub first(@xs, &predicate) { for @xs -> $x { if predicate($x) { return $x } } }
12:41 faraco how about just putting $x?
12:41 faraco it doesn't return?
12:41 pmurias joined #perl6
12:42 jnthn We'd just keep going around the loop, even though we'd reached the value we want to return
12:42 faraco oh, I see. thanks.
12:47 pmurias jnthn: if handlepayload is present it should always contain the entire body of the sub/method?
12:48 jnthn pmurias: I don't believe it's constrained in that way
12:48 * jnthn checks
12:49 jnthn pmurias: No, it just protects the code in argument 0
12:50 jnthn It's a form of handle that avoids any allocations
12:52 pmurias isn't it used only for returns?
12:52 AlexDaniel joined #perl6
12:54 timotimo it's a potential optimization for other cases
12:55 jnthn Yeah, only for returns at the moment but I I think it's got wider applicability
12:57 RabidGravy dafuq! IBM make an Informix server for Raspberry Pi
12:59 infrabyte joined #perl6
12:59 RabidGravy however I think I am going to ignore that for the time being
12:59 jnthn .oO( enterpise )
13:03 xinming joined #perl6
13:04 timotimo oooooooh
13:07 espadrine joined #perl6
13:09 RabidGravy I guess you could make a huge cluster of them and it would still be cheaper than the kind of hardware I've used in the past
13:15 RabidGravy ooh cunning, host by the ncurses termcap file having a capability "k;"
13:16 SmokeMachine is there anything that automatically generate README.md from pod?
13:16 infrabyte joined #perl6
13:17 rightfold GitHub can also render README.pod. It doesn't have to be markdown.
13:17 RabidGravy there's a Pod::To::Markdown
13:18 SmokeMachine rightfold: good to know! thanks!
13:18 RabidGravy so you can do "perl6 --doc=Markdown <pod file>"
13:18 SmokeMachine rightfold: but perl6 pod?
13:18 rightfold No idea
13:18 RabidGravy works reasonably well
13:18 rightfold Only one way to find out!
13:18 SmokeMachine RabidGravy: thanks!
13:18 lukaramu joined #perl6
13:19 * RabidGravy keeps meaning to make Pod::To::Man
13:19 RabidGravy then the LaTex horrors prevent it
13:20 RabidGravy oh wait, man is troff isn't it
13:20 RabidGravy even worse ;-)
13:20 RabidGravy do people even use troff for anything other than manpages now
13:21 rightfold Pod::To::Pod
13:21 tadzik Pod::To::POD may make sense :)
13:21 RabidGravy somewhere I worked years ago we did invoices with troff
13:21 rightfold Formatter :P
13:22 rightfold We did invoices with LaTeX. Worked well except for € and accents.
13:22 SmokeMachine rightfold: I think its broken: https://github.com/masak/temporal-flux-perl6syn/blob/dae2d68c1d2cf98b21d3031bfdc6fb7a22dcc3ba/S26-documentation.pod
13:22 rightfold ????
13:22 RabidGravy is there a way in a P6 regular expression to express "the <graph> class *except* #" ?
13:23 RabidGravy I've tried a variety of different formulations and none seem to work
13:24 RabidGravy or more probably for this the <graph> class except #:=@
13:25 infrabyte joined #perl6
13:26 RabidGravy I suspect otherwise I am going to be playing whackamole with the capability names in this termcap
13:26 timotimo you can & the <graph> with the opposite of <[#:=@]>
13:26 timotimo worst-case there's always <?{ }>
13:28 timotimo but really it should be possilbe to have <+graph -[#:=@]>
13:29 RabidGravy yeah but
13:29 RabidGravy m: say "#abc@:=f" ~~ m:g/[<graph> & <-[#@:=]>]/
13:29 camelia rakudo-moar c405f0: OUTPUT«(「a」␤ graph => 「a」 「b」␤ graph => 「b」 「c」␤ graph => 「c」 「f」␤ graph => 「f」)␤»
13:30 RabidGravy seems to work fine
13:30 timotimo that looks good?
13:30 timotimo good
13:30 timotimo you're working on a pure-perl termcap parser or something?
13:30 RabidGravy yeah
13:31 timotimo .u square
13:31 yoleaux U+005B LEFT SQUARE BRACKET [Ps] ([)
13:31 yoleaux U+005D RIGHT SQUARE BRACKET [Pe] (])
13:31 yoleaux U+033B COMBINING SQUARE BELOW [Mn] (◌̻)
13:31 timotimo u: square
13:31 unicodable6 timotimo, U+005D RIGHT SQUARE BRACKET [Pe] (])
13:31 unicodable6 timotimo, U+005B LEFT SQUARE BRACKET [Ps] ([)
13:31 unicodable6 timotimo, https://gist.github.com/7a8fb9f26f3ed76b1faa7f7cac657396
13:31 RabidGravy infact I have been working on it since "Mon Mar 23 16:07:26 2015" apparently
13:32 timotimo wow
13:32 mr_ron joined #perl6
13:33 RabidGravy infact it may have been the first module I started
13:33 RabidGravy I put it aside as it was taking like twenty seconds to parse the termcap
13:34 timotimo urgh :)
13:34 timotimo is it better today? it ought to be, but the regex engine hasn't improved terribly much
13:35 RabidGravy I dunno, I grabbed a newer termcap to test with and it's having all sorts of weird things
13:35 confundus joined #perl6
13:37 mr_ron m: https://gist.github.com/ronaldxs/fa513b68640f68c60421c45616892919
13:37 camelia rakudo-moar 6888f0: OUTPUT«True␤True␤False␤False␤»
13:38 mr_ron Unless something I missed - rakudobug soon
13:38 timotimo m: say so "2" ~~ /<+[2] +[2]>/
13:38 camelia rakudo-moar 6888f0: OUTPUT«True␤»
13:38 timotimo m: say so "2" ~~ /<+[2] +[q]>/
13:38 camelia rakudo-moar 6888f0: OUTPUT«True␤»
13:39 timotimo seems interesting
13:39 timotimo it might accidentally use the preexisting alpha rule?
13:40 RabidGravy ah
13:40 mr_ron last test case in gist
13:40 timotimo m: https://gist.github.com/timo/e6849d367da1a33e5af97d2c9f024d2c
13:40 camelia rakudo-moar 6888f0: OUTPUT«True␤True␤True␤False␤»
13:40 timotimo look, renaming it from alpha to garble makes it pass to our expectations
13:41 masak g'day, #perl6
13:41 mr_ron yes garble like alpha1 - no conflict with internal char class
13:41 timotimo ah, ok
13:42 rafaschp joined #perl6
13:42 RabidGravy so the "Atari ST" has a capability with '#' in it
13:43 RabidGravy this may require a rethink
13:46 * rafaschp rethinks.
13:57 eitan joined #perl6
14:00 pierrot joined #perl6
14:01 FROGGS_ joined #perl6
14:03 dugword joined #perl6
14:09 thayne joined #perl6
14:11 ChoHag joined #perl6
14:36 RabidGravy ^^\s*$$ should match a potentially empty line shouldn't it?
14:36 timotimo m: say "\n" ~~ / ^^ \s* $$ /
14:36 camelia rakudo-moar 012850: OUTPUT«「」␤»
14:36 timotimo looks like
14:36 timotimo m: say "" ~~ / ^^ \s* $$ /
14:36 camelia rakudo-moar 012850: OUTPUT«「」␤»
14:38 RabidGravy yeah, this weird, I've always been useless with regular expressions
14:50 kalkin-_ m: "foo/".IO.absolute.WHAT.say
14:50 camelia rakudo-moar 012850: OUTPUT«(Str)␤»
14:50 kalkin-_ Woot?
14:50 kalkin-_ The docs says it should return IO::Path
14:50 kalkin-_ https://docs.perl6.org/type/IO::Path#method_absolute
14:51 kalkin-_ bug in docs, bug in rakudo or do am I just confused?
14:51 confundus joined #perl6
14:53 rafaschp m: "foo/".IO.WHAT.say
14:53 camelia rakudo-moar 4ab020: OUTPUT«(Path)␤»
14:53 rafaschp m: "foo/".IO.absolute.say
14:53 camelia rakudo-moar 4ab020: OUTPUT«/home/camelia/foo␤»
14:54 RabidGravy bug in docs, it's tested as being a string
14:55 khw joined #perl6
14:56 regnarg joined #perl6
14:57 rafaschp "/home/camelia/foo/".IO.absolute.WHAT.say
14:57 rafaschp m: "/home/camelia/foo/".IO.absolute.WHAT.say
14:57 camelia rakudo-moar 4ab020: OUTPUT«(Str)␤»
15:13 regnarg left #perl6
15:18 rafaschp m: "/home/camelia/foo/".IO.WHAT.say
15:18 camelia rakudo-moar 3d1d69: OUTPUT«(Path)␤»
15:19 rafaschp m: "{"foo/".IO.absolute}".IO.WHAT.say
15:19 camelia rakudo-moar 3d1d69: OUTPUT«(Path)␤»
15:36 infrabyte joined #perl6
15:49 confundus joined #perl6
15:56 ChoHag joined #perl6
16:03 rafaschp RabidGravy: Is there a motive for them to retur Str instead of Path?
16:04 CIAvash joined #perl6
16:05 RabidGravy couldn't say with certainty but I'd say it's only in the string representation that you actually care
16:05 SmokeMachine Is there a zef equivalent to "panda installdeps ."?
16:06 notviki yes
16:06 RabidGravy if you have a Path object then it doesn't matter how the path looks
16:06 notviki zef install --depsonly .
16:07 SmokeMachine notviki: thanks
16:11 SmokeMachine notviki: will it install the testdeps too?
16:14 notviki I don't know
16:14 aindilis joined #perl6
16:17 confundus Is there any example of a toy interpreter/compiler written in Perl 6 using Grammar?
16:17 notviki haha
16:17 notviki confundus: well, Perl 6 itself ;)
16:18 timotimo we have toy compilers written in nqp. nqp has the full grammar capabilities that perl6 also has
16:18 timotimo 007 also exists, which is a little bit more than a toy
16:18 notviki confundus: this course gouse over building PHP-ish and Ruby-ish languages using nqp (a subset of Perl 6; more or less): http://edumentab.github.io/rakudo-and-nqp-internals-course/
16:19 confundus thanks, I was looking for something small in scope
16:21 thundergnat joined #perl6
16:21 statisfiable6 joined #perl6
16:23 rafaschp confundus: have a look at the examples: http://examples.perl6.org/categories/interpreters.html
16:26 thundergnat howdy #perl6
16:26 rafaschp o/
16:26 notviki \o
16:26 rafaschp RabidGravy: Thanks.
16:26 timotimo howdyhow
16:27 statisfiable6 joined #perl6
16:27 thundergnat Is there a simple way to unpack a list of lists of lists one level into a list of lists?
16:28 thundergnat Let me show an example.
16:28 thundergnat m: say (3..6).combinations(3)».permutations
16:28 camelia rakudo-moar 3d1d69: OUTPUT«(((3 4 5) (3 5 4) (4 3 5) (4 5 3) (5 3 4) (5 4 3)) ((3 4 6) (3 6 4) (4 3 6) (4 6 3) (6 3 4) (6 4 3)) ((3 5 6) (3 6 5) (5 3 6) (5 6 3) (6 3 5) (6 5 3)) ((4 5 6) (4 6 5) (5 4 6) (5 6 4) (6 4 5) (6 5 4)))␤»
16:29 thundergnat I wan that, only itemized into a list of lists
16:29 thundergnat *want
16:30 timotimo u: smiling face
16:30 unicodable6 timotimo, U+263A WHITE SMILING FACE [So] (☺)
16:30 unicodable6 timotimo, U+263B BLACK SMILING FACE [So] (☻)
16:30 thundergnat I can completely flatten and rebuild it, bu that seems kind of hacky to me.
16:30 unicodable6 timotimo, https://gist.github.com/d0b5edfba7c79ae2e8bc578307269cfa
16:30 timotimo where is upside-down smiling face? :\
16:30 timotimo u: upside down
16:30 unicodable6 timotimo, U+1F643 UPSIDE-DOWN FACE [So] (????)
16:30 timotimo aha!
16:31 confundus rafaschp: that looks very neat, thanks!
16:31 thundergnat m: say (3..6).combinations(3)».permutations.flat.rotor(3); # flatten and rebuild :(
16:31 camelia rakudo-moar 3d1d69: OUTPUT«((3 4 5) (3 5 4) (4 3 5) (4 5 3) (5 3 4) (5 4 3) (3 4 6) (3 6 4) (4 3 6) (4 6 3) (6 3 4) (6 4 3) (3 5 6) (3 6 5) (5 3 6) (5 6 3) (6 3 5) (6 5 3) (4 5 6) (4 6 5) (5 4 6) (5 6 4) (6 4 5) (6 5 4))␤»
16:31 rafaschp confundus: Any time.
16:36 Wanderer68 joined #perl6
16:47 infrabyte left #perl6
16:48 rafaschp m: (3..6).combinations(3)».permutations.flat
16:48 camelia rakudo-moar 3d1d69: ( no output )
16:48 CIAvash m: say (3..6).combinations(3).map: |*.permutations
16:48 camelia rakudo-moar 3d1d69: OUTPUT«((3 4 5) (3 5 4) (4 3 5) (4 5 3) (5 3 4) (5 4 3) (3 4 6) (3 6 4) (4 3 6) (4 6 3) (6 3 4) (6 4 3) (3 5 6) (3 6 5) (5 3 6) (5 6 3) (6 3 5) (6 5 3) (4 5 6) (4 6 5) (5 4 6) (5 6 4) (6 4 5) (6 5 4))␤»
16:48 rafaschp m: say (3..6).combinations(3)».permutations.flat
16:48 camelia rakudo-moar 3d1d69: OUTPUT«(3 4 5 3 5 4 4 3 5 4 5 3 5 3 4 5 4 3 3 4 6 3 6 4 4 3 6 4 6 3 6 3 4 6 4 3 3 5 6 3 6 5 5 3 6 5 6 3 6 3 5 6 5 3 4 5 6 4 6 5 5 4 6 5 6 4 6 4 5 6 5 4)␤»
16:49 rafaschp What does the docs mean when they say "flat does not recurse into sub lists"?
16:49 girafe joined #perl6
16:50 notviki Probably an error.
16:50 notviki m: say flat (1, 2, (3, 4), $(5, 6)) # it doesn't flatten itemized lists
16:50 camelia rakudo-moar 3d1d69: OUTPUT«(1 2 3 4 (5 6))␤»
16:51 notviki m: say flat [1, 2, (3, 4), (5, 6)] # and arrays itemize them; so the writer prolly interpreted it as not descending into sublists
16:51 camelia rakudo-moar 3d1d69: OUTPUT«(1 2 (3 4) (5 6))␤»
16:52 jdmmmmm joined #perl6
16:52 rafaschp m: my @arr = (3..6).combinations(3); @arr.>>permutations
16:52 camelia rakudo-moar 3d1d69: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing dot on method call␤at <tmp>:1␤------> 3y @arr = (3..6).combinations(3); @arr.>>7⏏5permutations␤    expecting any of:␤        postfix␤»
16:53 rafaschp m: my @arr = (3..6).combinations(3); @arr>>.permutations
16:53 camelia rakudo-moar 3d1d69: ( no output )
16:53 rafaschp m: my @arr = (3..6).combinations(3); @arr>>.permutations; say @arr
16:53 camelia rakudo-moar 3d1d69: OUTPUT«[(3 4 5) (3 4 6) (3 5 6) (4 5 6)]␤»
16:53 rafaschp m: my @arr = (3..6).combinations(3); say @arr>>.permutations;
16:53 camelia rakudo-moar 3d1d69: OUTPUT«(((3 4 5) (3 5 4) (4 3 5) (4 5 3) (5 3 4) (5 4 3)) ((3 4 6) (3 6 4) (4 3 6) (4 6 3) (6 3 4) (6 4 3)) ((3 5 6) (3 6 5) (5 3 6) (5 6 3) (6 3 5) (6 5 3)) ((4 5 6) (4 6 5) (5 4 6) (5 6 4) (6 4 5) (6 5 4)))␤»
16:53 thundergnat CIAvash: ah! That looks promising
16:53 RabidGravy yeah that sentence would imply it doesn't do
16:53 RabidGravy m: say flat (1, 2, (3, 4, (5, 6, ( 7, 8))))
16:53 camelia rakudo-moar 3d1d69: OUTPUT«(1 2 3 4 5 6 7 8)␤»
16:54 rafaschp m: my @arr = (3..6).combinations(3); say @arr.map: |*.permutations;
16:54 camelia rakudo-moar 3d1d69: OUTPUT«((3 4 5) (3 5 4) (4 3 5) (4 5 3) (5 3 4) (5 4 3) (3 4 6) (3 6 4) (4 3 6) (4 6 3) (6 3 4) (6 4 3) (3 5 6) (3 6 5) (5 3 6) (5 6 3) (6 3 5) (6 5 3) (4 5 6) (4 6 5) (5 4 6) (5 6 4) (6 4 5) (6 5 4))␤»
16:56 rafaschp Anyway, I think there should be a function that acts in the way the docs describe, not going into sublists.
16:57 rafaschp Just undoing the top level nesting.
16:57 thundergnat CIAvash Thanks. That works the way I want in my (larger) application.
16:57 notviki heh
16:57 thundergnat Thank you everyone for looking / suggestions.
16:58 notviki rafaschp: isn't that what slip's for? :)
17:00 rafaschp Which is exactly what CIAvash did there.
17:00 rafaschp m: say (3..6).combinations(3)».permutations.slip
17:00 camelia rakudo-moar 3d1d69: OUTPUT«No such method 'slip' for invocant of type 'List'␤  in block <unit> at <tmp> line 1␤␤»
17:01 rafaschp m: say slip (3..6).combinations(3)».permutations
17:01 camelia rakudo-moar 3d1d69: OUTPUT«(((3 4 5) (3 5 4) (4 3 5) (4 5 3) (5 3 4) (5 4 3)) ((3 4 6) (3 6 4) (4 3 6) (4 6 3) (6 3 4) (6 4 3)) ((3 5 6) (3 6 5) (5 3 6) (5 6 3) (6 3 5) (6 5 3)) ((4 5 6) (4 6 5) (5 4 6) (5 6 4) (6 4 5) (6 5 4)))␤»
17:01 ChoHag joined #perl6
17:01 rafaschp m: say  |(3..6).combinations(3)».permutations
17:01 camelia rakudo-moar 3d1d69: OUTPUT«((3 4 5) (3 5 4) (4 3 5) (4 5 3) (5 3 4) (5 4 3))((3 4 6) (3 6 4) (4 3 6) (4 6 3) (6 3 4) (6 4 3))((3 5 6) (3 6 5) (5 3 6) (5 6 3) (6 3 5) (6 5 3))((4 5 6) (4 6 5) (5 4 6) (5 6 4) (6 4 5) (6 5 4))␤»
17:02 rafaschp m: say  |(|(3..6).combinations(3)».permutations)
17:02 camelia rakudo-moar 3d1d69: OUTPUT«((3 4 5) (3 5 4) (4 3 5) (4 5 3) (5 3 4) (5 4 3))((3 4 6) (3 6 4) (4 3 6) (4 6 3) (6 3 4) (6 4 3))((3 5 6) (3 6 5) (5 3 6) (5 6 3) (6 3 5) (6 5 3))((4 5 6) (4 6 5) (5 4 6) (5 6 4) (6 4 5) (6 5 4))␤»
17:17 rafaschp m: say  (3..6).combinations(3)
17:17 camelia rakudo-moar 3d1d69: OUTPUT«((3 4 5) (3 4 6) (3 5 6) (4 5 6))␤»
17:17 rafaschp m: say  (3..6).combinations(3).map |*
17:17 camelia rakudo-moar 3d1d69: OUTPUT«{ ... }␤»
17:17 cdg joined #perl6
17:17 RabidGravy still think this termcap parser is too slow
17:18 pierrot joined #perl6
17:18 notviki What's IO::Blob HTTP::Server::Tiny is givin' me? I tried  to .decode it but it tells me no such method
17:19 notviki buggable: eco IO::Blob
17:19 buggable notviki, IO::Blob 'IO:: interface for reading/writing a Blob': https://github.com/moznion/p6-IO-Blob
17:19 notviki ah
17:41 dugword joined #perl6
17:41 dugword joined #perl6
17:52 kybr u: HEBREW
17:52 unicodable6 kybr, U+0591 HEBREW ACCENT ETNAHTA [Mn] (◌֑)
17:52 unicodable6 kybr, U+0592 HEBREW ACCENT SEGOL [Mn] (◌֒)
17:53 unicodable6 kybr, https://gist.github.com/7844a44d0b9d1250b19213548da618a5
17:56 bwisti joined #perl6
18:01 notviki eheheehe
18:01 * notviki notices [Coke]'s GitHub Webhooks article's code has arbitrary code execution hole :)
18:02 cdg joined #perl6
18:21 kybr u: BOX DRAWINGS
18:21 unicodable6 kybr, U+2500 BOX DRAWINGS LIGHT HORIZONTAL [So] (─)
18:21 unicodable6 kybr, U+2501 BOX DRAWINGS HEAVY HORIZONTAL [So] (━)
18:21 unicodable6 kybr, https://gist.github.com/65c301c875880614b0be00cb0094b821
18:21 shyam-id-au joined #perl6
18:22 shyam-id-au Is Perl 6 ready for production yet?
18:22 stmuk depends but generally yes (at least for some tasks)
18:23 notviki shyam-id-au: "ready for production" means very diffent things for different people.
18:27 shyam-id-au stmuk: What tasks is it not ready for?
18:27 shyam-id-au notviki: I mean like should I completely abandon Perl 5?
18:27 BenGoldberg joined #perl6
18:27 notviki shyam-id-au: Perl 5 is a different language.
18:28 notviki shyam-id-au: your decision to abandon it has no relation to Perl 6.
18:28 notviki shyam-id-au: "Is C++ ready? Should I abandon C"
18:28 shyam-id-au notviki: Does it make sense to use both?
18:29 notviki shyam-id-au: yeah
18:29 shyam-id-au notviki: What should I use Perl 5 for, and what should I use Perl 6 for?
18:30 notviki shyam-id-au: in broad strokes: use Perl 5 when you need speed in runtime; use Perl 6 when you need speed in writing code
18:31 notviki shyam-id-au: there's still alot of optimization and stability work to be done with Perl 6, so it wouldn't be my go-to tool for web apps that see any serious use. Perhaps in a year or two.
18:32 stmuk shyam-id-au: speed critical ones as notviki says
18:33 notviki At the same time, the programs that I converted from Perl 5 to Perl 6 were roughly half in size. So if my goal is to write something up quickly and I don't care how long it takes to run, I go for Perl 6
18:36 mst shyam-id-au: I'm very much enjoying the "use both" approach
18:37 shyam-id-au notviki: What do you mean by stability? Do you mean Rakudo/NQP is buggy? Is it because of the JVM?
18:37 * geekosaur is very much a fan of "use the appropriate tool for the job", and languages are tools
18:37 zakharyas joined #perl6
18:37 geekosaur shyam-id-au, there's still known issues relating to threading, for example
18:38 geekosaur also the JVM port is lagging quite a bit and still prone to odd errors
18:39 notviki shyam-id-au: the JVM backened isn't really super usable ATM. The most stable backend is MoarVM. By stability I mean that I have very low expectations of firing up a web app and it still running half a year later without eating up all the RAM or crashing
18:39 geekosaur re threading: the async mechanism has gotten a lot of work the past few months but still has some odd edge cases; autothreading, such as .race, is still known to just plain fail in many cases
18:39 geekosaur memory leaks have also gotten a lot of work but need a lot more
18:39 notviki shyam-id-au: a year ago, my web app ate 2GB of ram while I was taking a shower. A lot of leaks has been fixed since then, but I doubt none remain.
18:43 notviki shyam-id-au: and yeah, there are some bugs; the first release was just a year ago and it's a pretty big piece of software.
18:43 dalek ecosystem: 3f147dd | (Fernando Santagata)++ | META.list:
18:43 dalek ecosystem: Two new modules
18:43 dalek ecosystem:
18:43 dalek ecosystem: Archive::Libarchive::Raw - a NativeCall interface to libarchive.
18:43 dalek ecosystem: Archive::Libarchive - an OO interface to libarchive.
18:43 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/3f147dd1b0
18:43 dalek ecosystem: e974ef0 | (Juan Julián Merelo Guervós)++ | META.list:
18:43 dalek ecosystem: Merge pull request #281 from frithnanth/patch-3
18:43 dalek ecosystem:
18:43 dalek ecosystem: Two new modules
18:43 dalek ecosystem: Thanks a lot for the submission.
18:43 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/e974ef04a5
18:44 dugword Libs for some stuff aren't quite there in Perl6 etiher. E.g if you have to connect to active directory or a Microsoft SQL database. But Inline::Perl5 works really nice for most of that stuff. I've been writing most of my "top level" scripts in perl 6, but they are still calling a lot of perl5 code
18:44 notviki That too. Our ecosystem is tiny and because it's so easy to use a Perl 5 module in your perl 6 code, there's little motivation for devs to develop Perl 6 modules
18:51 notviki m: say "on"; start { sleep .5; say "hand" }; say " the other "; sleep 1; react { whenever Supply.from-list(<Perl 6 is nice to program>) { .say } }; say "in"
18:51 camelia rakudo-moar 3d1d69: OUTPUT«on␤ the other ␤hand␤Perl␤6␤is␤nice␤to␤program␤in␤»
18:51 notviki :)
18:52 ufobat joined #perl6
18:53 BenGoldberg And of course NativeCall is awesome for using libraries which don't yet have a perl6 module.
18:56 shyam-id-au So would you recommend abandoning Perl 5 when Perl 6 catches up in stability/optimisation/modules?
18:56 notviki haha
18:57 BenGoldberg shyam-id-au, What would cause you to recommend abandoning C for C++?
18:57 notviki shyam-id-au: I would, but it's 'cause I like Perl 6 more :)
18:58 shayan_ joined #perl6
18:59 shyam-id-au BenGoldberg: C++ is basically C with higher abstractions, and has STL/Boost.
18:59 notviki Any idea why my react block isn't receiving events? https://github.com/zoffixznet/geth/blob/master/bin/geth.p6#L16 They're emited here: https://github.com/zoffixznet/geth/blob/master/lib/Geth/GitHub/Hooks.pm6#L18
19:01 hartenfels joined #perl6
19:02 notviki hah
19:02 notviki lol, I forgot to stick the server into its own thread :P
19:03 notviki But which I mean I forgot to type one word of code: "start" :P
19:04 [Coke] can we get tmux-latest on irc.p6c.org?
19:06 bwisti joined #perl6
19:06 RabidGravy notviki, yeah, it will never leave the TWEAK
19:06 espadrine joined #perl6
19:07 RabidGravy if you want to have the server under external control, you can pass it a Promise as :$control-promise I think which will cause the server to exit when it is kept
19:07 RabidGravy I put that in there for precisely that use case
19:08 RabidGravy (where you want to embed the server in a larger application,)
19:12 labster joined #perl6
19:14 thundergnat Is/are there any core methods to extract the mantissa and exponent from a Num? Similar to the .nude method for numerator and denominator for Rats?
19:14 thundergnat I'm not seeing anything obvious with a quick scan through the docs.
19:15 notviki m: say 3.14e308.split: "e"
19:15 camelia rakudo-moar 3d1d69: OUTPUT«(Inf)␤»
19:15 notviki m: say 3.14e300.split: "e"
19:15 camelia rakudo-moar 3d1d69: OUTPUT«(3.14 +300)␤»
19:15 * notviki shrugs
19:16 thundergnat m: say 2.345e9
19:16 camelia rakudo-moar 3d1d69: OUTPUT«2345000000␤»
19:16 thundergnat m: say 2.345e9.split: 'e'
19:16 camelia rakudo-moar 3d1d69: OUTPUT«(2345000000)␤»
19:16 thundergnat hmm
19:18 notviki m: say 2.345e9.fmt('%e').split: 'e'
19:18 camelia rakudo-moar 3d1d69: OUTPUT«(2.345000 +09)␤»
19:18 notviki m: say 2.345e9.fmt('%e').split('e')».Numeric
19:18 camelia rakudo-moar 3d1d69: OUTPUT«(2.345 9)␤»
19:18 notviki m: say 2.345e-9.fmt('%e').split('e')».Numeric
19:18 camelia rakudo-moar 3d1d69: OUTPUT«(2.345 -9)␤»
19:19 thundergnat Looks like that would work
19:20 thundergnat Thanks
19:20 BenGoldberg notviki, Geth is *such* a creepy name for an irc bot.  Surely something like HAL would be nicer? ;)
19:20 notviki HAL is taken
19:21 wololoooo joined #perl6
19:21 notviki Also... I never seen 2001
19:21 notviki While I did have many battles with the Geth :P
19:22 RabidGravy notviki, BTW if you rename the supply attrbute to Supply, you can just stick the object in the whatever directly
19:22 RabidGravy it does a coercion thingy
19:23 * geekosaur notes with amusement japhb's suggestion elsewhere
19:23 wololoooo Hello guys i have an issure, not sure if it is a bug
19:24 wololoooo loop ($i=0;$i<10;$i++) gives an error
19:24 wololoooo but not loop ($i=0;$i <10;$i++)
19:24 wololoooo there is a space between $i and <
19:24 notviki RabidGravy++ thanks.
19:25 notviki m: my $i; loop ($i=0;$i<10;$i++) {}
19:25 camelia rakudo-moar 3d1d69: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Whitespace required before < operator␤at <tmp>:1␤------> 3my $i; loop ($i=0;$i<10;$i++) {}7⏏5<EOL>␤    expecting any of:␤        postfix␤»
19:25 wololoooo yes that is the error
19:25 hobbs well, that's a pretty clear error.
19:25 geekosaur wololoooo, perl 6 tends to be sensitive about spaces. here, I expect it sees `$i<` and expects to see it followed by a string (i.e. it is parsing $x<foo>)
19:25 notviki wololoooo: well... the error does say you need whitespace there. Why would that be a bug?
19:25 wololoooo then why should $i>10 work
19:26 wololoooo i dont see consistency there
19:26 geekosaur and that's a case that is hard to handle properly
19:26 notviki wololoooo: also for ^10 {...} is the common way to write such a loop; or for ^10 -> $i { ... } if you actually need the $i
19:26 notviki wololoooo: > is not ambiguous
19:27 geekosaur wololoooo, the point is that < can be a postcircumfix (subscript-like operator)
19:27 wololoooo @notviki that was an example
19:27 geekosaur so you need a space to distinguish between the uses; if it detects an ambiguous space it guesses for the error message but you don't want it to guess and continue because the guess could well be wrong
19:28 BenGoldberg It's for the same reason why, when writing html, if you want a literal < in your text you've got to encode it, but when you want a literal > in your text, you can write it as is.  One is ambiguous, the other isn't.
19:28 gfldex m: sub postcircumfix:«> <»($a){}; loop (my $i=0;$i>10;$i++) {};
19:28 camelia rakudo-moar 3d1d69: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in postcircumfix:sym«> <»; couldn't find final $stopper ␤at <tmp>:1␤------> 3rcumfix:«> <»($a){}; loop (my $i=0;$i>107⏏5;$i++) {};␤    expecting any of:␤        s…»
19:28 geekosaur and a possibly misleading error message is better than charging on through with the wrong interpretation
19:28 gfldex wololoooo: see ^^^
19:29 * notviki would guess this has more to do with single-pass parsing rather than wrong interpretations
19:30 BenGoldberg m: sub postcircumfix::«; ;»($a){}; loop (my $i=0;$i>10;$i++) {};
19:30 camelia rakudo-moar 3d1d69: OUTPUT«===SORRY!===␤Name postcircumfix:: ends with '::' and cannot be used as a sub declaration␤»
19:30 hartenfels There's a bug in that error message though, isn't there? It should say '>' instead of $stopper.
19:30 masak why didn't anybody tell me that trying to make your HTML + CSS look like the designer's mockup was so much fun? :P
19:30 geekosaur yeh, that looks like interpolation fail (probably in a '' instead of a "" string)
19:31 gfldex i shall rakudobug
19:31 notviki m: try 'sub postcircumfix:«> <»($a){}; loop (my $i=0;$i>10;$i++) {};'.EVAL; say $!.^name
19:31 camelia rakudo-moar 3d1d69: OUTPUT«X::Comp::FailGoal␤»
19:31 geekosaur m: my $a = {a => 1, b => 2}; say $a<b> # this is what perl6 thinks it is seeing
19:31 camelia rakudo-moar 3d1d69: OUTPUT«2␤»
19:31 notviki s: X::Comp::FailGoal, 'message', \()
19:31 SourceBaby notviki, Sauce is at https://github.com/rakudo/rakudo/blob/3d1d699/src/core/Exception.pm#L705
19:34 * gfldex tries to finish the bugreport before notviki fixed the bug
19:34 notviki nah, I'm not fixing it :)
19:34 notviki At least not today
19:34 wololoooo @BenGoldberg i didnt get what «> <»($a){}; is, but i get the point that< has multiple roles
19:35 gfldex wololoooo: in Perl 6 you can define new operators, including postcircumfix. Adding an operator will change how the language is parsed.
19:35 wololoooo and i get the problem with html, but other languages have similar problem with similar stuff and they (manage?) allow it
19:35 gfldex filed as #130528
19:35 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130528
19:36 hartenfels Perl6 allows it too, but only if there's no ambiguity.
19:36 hartenfels Which is why > works.
19:36 gfldex Perl 6 is a dynamic dynamic language :)
19:36 hartenfels ...until you define something that breaks it, that is.
19:36 notviki wololoooo: by backtracking and using the different option. We tend to avoid that and parse everything in a single go.
19:37 notviki In exchange, you need to put whitespace in certain places.
19:37 gfldex even the errors are dynamic :->
19:37 * gfldex sharpens his pencil
19:40 wololoooo idk still feels awkward to use, similar to "if()" "if ()" and language allowing me to define a sub if()
19:40 TimToady also, Perl 6 is not in the business of supporting code golf, so this can be construed as one of the ways we encourage the use of spaces around binary operators for readability
19:40 yoleaux 2 Jan 2017 06:34Z <CIAvash> TimToady: any thoughts on this: https://irclog.perlgeek.de/perl6/2016-12-22#i_13784143
19:40 yoleaux 3 Jan 2017 18:35Z <DrForr> TimToady: private question for you when you have a few minutes.
19:40 yoleaux 5 Jan 2017 02:35Z <AlexDaniel> TimToady: perhaps you can take a look at RT #130508 ?
19:40 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130508
19:40 yoleaux 5 Jan 2017 03:17Z <AlexDaniel> TimToady: also, what should be the output of 「say ({ 42 } while $++ < 3)」? should it be (42 42 42) (like on 2015.12) or three code blocks (like everywhere after 386905f6f6)?
19:40 notviki wololoooo: you don't need parens with if
19:41 wololoooo im used to it from c++
19:41 wololoooo :D
19:42 RabidGravy I've actually got to a stage with the parens that I'm forever leaving them out of other languages where they are needed
19:50 gfldex iswitftlybloggedalittle: https://gfldex.wordpress.com/2017/01/07/leaving-out-considered-dangerous/
19:52 ChoHag joined #perl6
19:52 gfldex in the list of blog posts the 3 white spaces are there. In the publicly visible blog post WP has collapsed them. WP has no love for coders. :(
19:55 geekosaur or the browser has, html being what it is
19:55 gfldex good point
19:55 gfldex does work tho
19:56 wololoooo @gfldex "put a while space"
19:56 gfldex wololoooo: thanks
19:57 gfldex at least the typo fits the topic
19:59 jdmmmmm joined #perl6
20:06 kyan joined #perl6
20:08 RabidGravy ???? I belong to the g????eneration
20:09 RabidGravy <blank>
20:09 RabidGravy something weird going on with the direction of the rests in this
20:10 pierrot joined #perl6
20:14 telex joined #perl6
20:20 AlexDaniel joined #perl6
20:21 [Coke] ¶ - ok I can type unicode directly, but if I cut and paste it, I get codes.
20:21 [Coke] 0x1d5390x1d5660x1d5650x1d5650x1d5560x1d5630x1d5570x1d55d0x1d55a0x1d5560x1d564 (cut and paste "butterflies" from https://github.com/coke/p6-unicode-mangler)
20:22 * masak .oO( all I see is butterfly, butterfly, butterfly... )
20:23 wololoooo joined #perl6
20:25 bisectable6 joined #perl6
20:25 statisfiable6 joined #perl6
20:26 geekosaur [Coke], terminal-based irc client? that's what some terminals do when handed unicode they don't understand (far too many of them mishandle anything outside iso8859-N, and even some that go further seem to have a cap beyond which they insert escape codes instead)
20:27 [Coke] geekosaur: irssi running in tmux on irc.p6c.org - if i paste that into a non irssi window, it works.
20:27 [Coke] (er, a tmux window running on irc.p6c that isn't running irssi)
20:27 geekosaur ah, yeh, tmux would also figure into it
20:28 geekosaur no idea how you'd fix that, I haven't done much with tmux (and basically assume any screen/tmux/whatever is too 1980s to handle unicode sanely :)
20:28 [Coke] it all worked fine under screen. :|
20:28 statisfiable6 joined #perl6
20:29 geekosaur mm, if screen vs. tmux is the only difference and it works in tmux to non-irssi, it's either irssi or something you could tweak in the terminfo
20:31 statisfiable6 joined #perl6
20:31 dugword joined #perl6
20:32 kalkin- m: say "/foo/asd".IO ~~ "foo/asd/".IO
20:32 camelia rakudo-moar 3d1d69: OUTPUT«False␤»
20:32 kalkin- this is why i  wanted "/foo/asd".IO.absolute to return a IO::Path instead of Str
20:33 kalkin- m: say "/foo/asd".IO.absolute ~~ "/foo/asd".IO.absolute
20:33 camelia rakudo-moar 3d1d69: OUTPUT«True␤»
20:33 kalkin- m: say "/foo/asd".IO.absolute ~~ "/foo/asd/".IO.absolute
20:33 camelia rakudo-moar 3d1d69: OUTPUT«True␤»
20:33 kalkin- m: say "/foo/asd".IO ~~ "/foo/asd/".IO
20:33 camelia rakudo-moar 3d1d69: OUTPUT«True␤»
20:33 kalkin- ups
20:33 kalkin- weird, this works
20:33 kalkin- hmm need to check my production code
20:33 RabidGravy yeah you don't need it
20:34 geekosaur hm, what is IO::Path.ACCEPTS doing there?
20:34 RabidGravy just looking
20:35 RabidGravy nqp::p6bool(nqp::iseq_s($.abspath, nqp::unbox_s(other.abspath)));
20:35 RabidGravy so yes, exactly whay kalkin- wants :)
20:40 kalkin- m: "/asd/foo".IO.relative().WHAT.say
20:40 camelia rakudo-moar 3d1d69: OUTPUT«(Str)␤»
20:40 kalkin- hmm relative is also wrongly documented
20:40 kalkin- m: "/asd/foo".IO.parent.WHAT.say
20:41 camelia rakudo-moar 3d1d69: OUTPUT«(Path)␤»
20:49 moritz what's an idiom for "take elements from a list while/until &predicate is satisfied"?
20:50 moritz maybe List.head could get a Callable candidate?
20:51 moritz (3, 5, 7, 9, 11).head(&is-prime)  -> (3, 5, 7)
20:51 kalkin- moritz: whats wrong with gather for @foo -> $f { if $f ~~ "foo" { LAST } else { tage $f } }?
20:51 kalkin- s/tage/take/
20:51 kalkin- or just use grep?
20:52 kalkin- ohh until sorry
20:52 moritz until?
20:52 moritz kalkin-: the only thing wrong with your propose solution is that it's not very concise
20:52 notviki m: say .head: .first: :k, *.is-prime.not given (3, 5, 7, 9, 11)
20:52 camelia rakudo-moar 3d1d69: OUTPUT«(3 5 7)␤»
20:53 moritz notviki: ah, using this list twice, that works
20:55 notviki m: say (3, 5, 7, 9, 11).grep: {.is-prime or last}
20:55 camelia rakudo-moar 3d1d69: OUTPUT«(3 5 7)␤»
20:55 kalkin- TIL about is.prime or last.
20:56 kalkin- there're so many nice small idioms in Perl6 and so much to learn…
21:02 masak I'm still of two minds about the whole "grep et al are loops" thing... :)
21:02 masak maybe I'm a traditionalist, for no good pragmatic reason
21:03 kalkin- found my issue why '/asd'.IO was not the same as '/asd/'.IO. I used the Test::is instead of Test::cmp-ok
21:04 geekosaur masak, proceduralist :p
21:08 masak yeah, something like that
21:08 masak I think with old age I grow more attached to simple, predictable features with few moving parts
21:09 masak Perl in some ways is not designed to cater for that demographic :P
21:11 masak bottom-up design: "let's find some powerful primitives". (Perl's) top-down design: "ooh, I like how this thing behaves! how do with make more of that in other places?"
21:11 moritz masak: so what languages do you find yourself gravitating towards? Lisp dialects?
21:12 kalkin- reminds me of lua: Ohh you need to split string? Implement it your own
21:12 masak don't get me wrong; Perl 6 is still my favorite language for many things
21:13 masak moritz: to answer your question, though: I've probably been writing more JavaScript in 2016 than any other language.
21:13 masak moritz: if that counts as "gravitating towards" :)
21:14 masak moritz: it's still more "has to relate to" than "likes", but the fact is that JavaScript can't be ignored, and that's significant in itself
21:14 masak plus, I find ES6 + additions to be a fairly bearable language, actually
21:15 masak I would love to write an `is parsed` macro in 007 in 2017. in fact, let me precommit to that.
21:15 masak it's not that faraway a goal.
21:16 newbie1 joined #perl6
21:17 kalkin- What is the whole fuzz about 007? I know it's about testing out macros for Perl6(?), but the README.md wall of text and the whole James Bond setting, just confuses me
21:17 kalkin- What can I do with 007 today?
21:19 moritz you can learn about compiler implementation in a high-level language, for example
21:21 masak kalkin-: it's about testing out macros for Perl 6
21:21 RabidGravy masak, y'know ages ago we talked about "Server Sent Events" did you end up doing anything with tat?
21:21 masak kalkin-: if your interests are distinct from that, then quite honestly 007 might not do much for you :)
21:21 masak RabidGravy: well, yes
21:22 masak RabidGravy: but I quickly ran into performance/stability trouble
21:22 kalkin- moritz: now this is an angle i haven't used to view 007, with that in mind I will have a look again at it someday
21:22 masak RabidGravy: I should pick it up again soonish to see if Rakudo handles it better these days
21:22 masak kalkin-: cool
21:23 RabidGravy the stability issue being it gets wedged at around 16 connections?
21:23 masak yes, it was quite amazing how quick 007 was to whip up in Perl 6
21:23 masak though I did have one compiler under my belt before that, which helped (Yapsi)
21:23 masak if you've implemented lexical scoping at least once, you're already corrupt^Wenlightened
21:24 kalkin- masak: heard the same about monads. Still waiting for the enlightenment :D
21:24 RabidGravy kick in the monads
21:25 masak kalkin-: ah, don't tempt me :)
21:25 masak this channel is tolerant of my OT-ing, but monads might be crossing the line...
21:25 * masak loves explaining things :>
21:25 * moritz would love to read that explanation
21:26 * hartenfels too
21:26 masak ok, meet me at #perl6-monads :)
21:26 RabidGravy I'm kinda whatever n the subject ;-)
21:27 * geekosaur admits curiosity as to how this burrito is assembled :p
21:27 ilbot3 joined #perl6
21:27 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!
21:34 * RabidGravy puts the termcap thing back in the box for another year
21:36 dugword joined #perl6
21:43 vike joined #perl6
21:47 kalkin- About the :ver and :auth adverbs: It's possible to define them in side of a file module and it's possible to define them in META6.json directly in version field, and probably you could specify the version you are using via provides fields
21:48 kalkin- which is the canonical way?
21:48 kalkin- and what if the META6.json defined version: "*" and your module defines class Foo:ver(v10)?
21:48 cdg joined #perl6
21:49 kalkin- which is more authoritative?
21:50 rba_ joined #perl6
21:51 moritz I don't know the answer to your questions, but if I were to write a module, I certainly wouldn't want to include the version and authority in each file separately
21:51 moritz so I'd tend to write those things only in the META6.json file
21:51 moritz 7w 12
21:51 moritz sorry
21:52 kalkin- moritz: jnthn does it. At least in META6. Funny thing to note, file provides v0.0.10 while META6.json v0.0.11
21:52 rafaschp If you want an authorithative answer, I think you'll need to ask TimToady
21:52 moritz kalkin-: might be an artifact from the times before you could do that in the META6.json; not sure though
21:54 notviki As I recall it, only the META version is used.
21:54 notviki easy enough to test tho
21:55 kalkin- yes META one is used
21:56 kalkin- But then what if I have a repo providing two different versions of the same module? AFAIK there is no way in META6.json to declare that you ship multiple versions
21:56 kalkin- well at least not via version field
21:56 kalkin- May be you could use provide to declare that..
21:57 ugexe SmokeMachine: `zef install --depsonly .` will install depends, build-depends, and test-depends. if you want to skip test-depends you can do `zef install --depsonly --/test-depends .`
21:57 RabidGravy As it currently stands the ver and auth defined on the, say, class definition seem to be recorded but not used in the "use"
21:59 RabidGravy you can retrieve the values from the type object but they play no part in the loading which only considers the META version and auth
21:59 kalkin- But why is this so?
21:59 kalkin- is it intentional or just not implemented properly yet?
21:59 ugexe version field describes the version of a *Distribution*, not a module. You cannot have multiple distributions in a distribution. But your point does stand for multiple versions of a *module*
21:59 sjn ugexe: is it possible to force zef to do a "temporary" install when using --depsonly? (e.g. for use when you're building RPM packages etc.)
22:00 ugexe sjn: explain further what you want temporary to do
22:00 kalkin- sjn: may be --install-to will help you?
22:00 kalkin- ugexe: ahh i see distribution vs module, make sense
22:01 kalkin- but why do I want to version Distributions, when I'm actually interested in the version of the classes/modules/grammars
22:01 kalkin- ?
22:01 sjn ugexe: my thought was not to leave behind any deps when one is finished packaging (assuming that one doesn't have any fancy containers available)
22:02 ugexe sjn: as kalkin- mentions you probably want `zef -to=inst#tmp/ --depsonly .`
22:02 sjn ugexe: so the next RPM package to be created doesn't find previously-installed dependencies
22:02 kalkin- sjn: and dont forget to add the install-to path to your PERL6INCLUDE (?)
22:02 kalkin- not sure how the global is called
22:03 ugexe PERL6LIB=inst#tmp/ or -Iinst#tmp/
22:03 sjn ok, can zef also be coaxed into ensuring that perl6 only sees those temporary deps?
22:03 sjn ahah
22:04 sjn well, -I only adds a dir to search path, doesn't it?
22:04 kalkin- The only thing Distribution versions is META6.json and the ressources, everything else could theoretically be versioned in code.
22:05 ugexe yeah -I only adds to the search path. I suppose a CompUnit::Repository::* would be needed to tear down the repo chain
22:05 sjn Hm
22:08 ugexe kalkin-: if you declare your META6.json provides like "My::Module:ver<1.2>" : "lib/My/Module.pm6" I think zef would properly find it in the ecosystem and do the right thing. however, rakudo/CUR is not built to handle that
22:08 ugexe so installing it would fail, or trying to use it after installing would
22:08 kalkin- Btw should Distributions be called App-Foo or App::Foo? I remember Test::META warned if you use :: in META6 name field. Is it to distinguish Distributions Names from Module Names? (Because there might be multiple distributions providing same modules with same versions and auth?)
22:08 kalkin- ugexe: ahh nice
22:09 ugexe kalkin-: it *should* be App-Foo according to s22, but I could never enforce this because everyone expects App::Foo to work
22:11 TEttinger joined #perl6
22:11 RabidGravy kalkin- are you sure I think it warns if you use a hyphen and not '::'
22:12 ugexe sjn: if you're writing a script to do it you could do it that way
22:12 kalkin- I'm really don't understand why there is a concept of distrubution. We have the concept of version, auth (repo + owner), so we can identify same module with same version with different implementations but same api (if people stick to SemVer).
22:13 kalkin- RabidGravy: Yes it's like you said
22:13 RabidGravy ok check-name($meta, :$relaxed-name), "name has a hypen rather than '::' (if this is intentional please pass :relaxed-name to meta-ok)"
22:13 ugexe well we dont distribute individual modules
22:14 ugexe if you hav e a distribution with 100 provides, would you make 100 tar balls?
22:14 ugexe when you want to uninstall those 100 tar balls do you want to do it individually for each one?
22:14 kalkin- ugexe Why don't do like this: If zef install App::Foo you install the first distribution providing the module App::Foo. If some one does zef install App-Foo, then you install the distribution App-Foo
22:15 ugexe because you can have a module named App-Foo
22:15 ugexe and what do you do when the name is just 'Foo"
22:15 notviki :D
22:16 kalkin- ugexe: I don't understand why would you package every provide in own tar ball, but I think the package manager should be able to cope with that, because it may make sense to separate a large web framework in 3 groups which are used often one at a time
22:17 ugexe you shouldnt need a package manager to do it
22:18 kalkin- ugexe: to do what? Download source code from the internet? (And btw with package manager I meant zef not a Linux Package Manager (apt/yum/emerge)
22:19 ugexe how does it cope with 100 individual modules and their dependencies?
22:19 RabidGravy I'm sure we look forward with rapt anticipation to the super package installer that solves all of these problems
22:20 kalkin- ugexe: 100 individual modules instead of on Distribution providing the modules? *confused*
22:21 kalkin- s/on/one
22:21 ugexe the Distribution has a single META6.json that declares all of that
22:22 RabidGravy so you *do* understand the concept of "Distribution" then ;-p
22:23 kalkin- Ok i will backup
22:23 kalkin- My issue is that Distribution is first class citizen
22:23 kalkin- While the first class citizen should be a module
22:23 kalkin- the distribution should be just a delivery way, like a deb package
22:24 kalkin- hmm, wait
22:24 kalkin- may be i have to rethink it
22:24 ugexe a deb package is.. dun dun dun... a distribution
22:24 * moritz thinks it makes quite some sense to expose Distribution as a first-class citizen
22:24 kalkin- yes it hit me too :)
22:25 moritz after all, you ask questions about distributions, and want answers
22:25 RabidGravy but the modules inside a distribution all come together so they all have the same logical auth and ver
22:25 moritz and uninstall one etc.
22:26 kalkin- the META6.json depend field, does it list Distributions or Modules?
22:26 moritz distributions, I hope
22:26 ugexe it can be either. s22 says its whatever you `use`
22:27 RabidGravy an auth or ver at the module level is an application level thing, I'd quite like to be able to use it within *the same distribution* to provide different versions of the same API
22:27 RabidGravy like e.g. RSS
22:27 newbie1 joined #perl6
22:28 RabidGravy or (something I'm thinking about at the moment,) AMQP
22:29 kalkin- ugexe: so i can say in code: use My-Distri:ver<v0.23>::My::Module:ver<v23>? (or similar)
22:29 ugexe no
22:29 ugexe you're not misunderstanding - thats just the way it is
22:32 kalkin- S22#depends says that `use` strings of compilation units are specified. It is the responsibility of recommendation manager to turn these into distributions.
22:32 ugexe meaning if i set up zef to only handle modules in depends it would break peoples stuff and then people would just use panda to continue that behavior
22:32 kalkin- So not distributions?
22:32 RabidGravy I guess though that there is scope in the CUR piece to make one for yourself that did that if you wanted it
22:32 ugexe same if it only handled distribution in depends
22:34 ugexe there are just some bad parts we're stuck with for now, like Build.pl
22:34 RabidGravy the "depends" should really check whether something has provided that specification, not how it was provided
22:35 ugexe thats what zef does
22:35 notviki Anyone know offhand how to make `ssh -nNTR 8888:localhost:8888 zoffix@server` stick and not silently disconnect ever 5 minutes?
22:35 ugexe Zef::Distribution.contains-spec("Foo::Bar:ver<...>") or some such
22:35 RabidGravy yep
22:36 ugexe the reason CURs dont do that is (i think) so it can try to speed up the lookup of modules
22:38 RabidGravy but if one felt strongly enough about it it is entirely possible to add one's own CUR
22:39 kalkin- CUR?
22:39 RabidGravy CompUnit::Repository
22:39 kalkin- ahh thanks
22:41 kalkin- just to sum up the best practice would be specifying the module not distribution in depends?
22:41 kalkin- if so i can add it to the Module docs page, so people start doing that
22:41 RabidGravy notviki, I think you can turn off the KeepAlive at the command line
22:42 notviki off?
22:42 RabidGravy kalkin-, yes
22:43 jraglin joined #perl6
22:43 RabidGravy off yes, it stops it from checking whether it is doing anything
22:43 RabidGravy or something
22:43 araujo joined #perl6
22:43 araujo joined #perl6
22:43 * notviki tries -o ServerAliveInterval=30000
22:43 ugexe kalkin-: yes and no. in some cases it does make sense to use the distribution. if I want to use half of HTTP::UserAgent components does it make more sense to list HTTP::UserAgent or the individual 10 components from the same distribution
22:44 notviki RabidGravy++ thanks
22:45 kalkin- ugexe: it depends. actually it makes sense to least all the individual ones, but this should be done automatically by mi6 or something
22:45 kalkin- s/least/list
22:45 ugexe and for things like orphaned packages it would definitely be easier to search depends for distributions
22:46 RabidGravy HTTP::UserAgent may be a bad example however as it shares two module names with another distribution
22:47 kalkin- The module name sharing wouldn't be an issue if people would use auth for their dependencies :)
22:48 kalkin- I think part of the issue is that maintaining META6.json is PITA because most of it has to be done by hand
22:48 RabidGravy and that is precisely what it is for
22:49 RabidGravy kalkin-, it's macine readable and writable
22:50 RabidGravy the thing that underpins Test::META is quite happy creating them as well as reading them, if you arrange to populate it appropriately
22:50 RabidGravy that part is a SMOP
22:50 RabidGravy I have a script that generates new ones
22:51 ugexe and some part will always need to be generated by hand - theres no real way to determine all the dependencies your distribution provides. as a dist/application author you are responsible for knowing these
22:51 ugexe your distribution depends^
22:51 BenGoldberg depends upon :)
22:52 cyphase joined #perl6
22:53 ugexe even if you modify a CUR to record all the modules that gets loaded when you run your test suite there is no guarantee every code path gets taken
22:53 RabidGravy I was just going to say that
22:53 kalkin- let's assume mi6 would generate the depends part, by greping the use lines and getting the compunit names. While version could be resolved by zef, should it also enforce the auth name?
22:53 kalkin- (to prevent issues similar to HTTP::UserAgent)
22:54 RabidGravy I think zef does that
22:55 kalkin- AFAIK every current Distribution has an auth name (fallback to author)?
22:55 kalkin- RabidGravy: Generate META6.json depends fields?
22:55 ugexe the fallback should not happen
22:55 ugexe it only does because of backwards compatibility
22:55 kalkin- ugexe: i thought about the orphaned distributions
22:55 RabidGravy the depends entries should be anything that is valid in a "use"
22:55 kalkin- (because you talked about them prior)
22:55 cdg joined #perl6
22:56 ugexe and yeah zef turns any module name or dist name string into a long form name. if a module name is missing ver or auth, it will add whatever the parent distribution's is
22:56 RabidGravy no, you can write your own code to make the depends entries if you wish
22:57 ugexe just grepping for module names wont work. panda and zef both used to do this to determine the order to precompile (when they handled that themselves)
22:57 RabidGravy I mean where would the fun be if we did everything for you
22:57 ugexe require $xxx;
22:58 kalkin- RabidGravy: no, I just thought I oversaw something in zef
22:59 kalkin- What is the current state of mi6? Is it dormant? I'm asking because I have a small fork privately, which adds a few features, but also depends on some yet unpublished modules, so I'm not sure if skaji_ is happy with big PRs bringing in more dependencies
23:00 Gasher joined #perl6
23:00 RabidGravy I don't think I've used it
23:01 ugexe I'm not sure i would recommend it
23:02 raiph .tell thundergnat Re: "simple way to unpack a list of lists of lists" Maybe as at http://stackoverflow.com/a/37230217/1077672?
23:02 yoleaux raiph: I'll pass your message to thundergnat.
23:03 dugword joined #perl6
23:03 ugexe it has things like 'PERL6LIB=$PWD/blib/lib' which show its extremely outdated
23:04 ugexe and its not going to handle things like `"provides" : { "Foo" : "lib/Foo.pm6", "Foo::Bar" : "lib/Foo.pm6" }`
23:06 RabidGravy eugh
23:07 * sjn kinda agrees that "distribution" is a bad name for what it means in the Perl community
23:08 sjn I wonder if it would be meaningful to start using another name for it
23:08 sjn e.g. "collection"
23:08 notviki heh
23:08 ugexe its a bunch of modules that are logically grouped in the way that you would normally distribute
23:08 kalkin- package
23:09 sjn just to avoid the dual-purpose-conflicts in terms like that
23:09 kalkin- but know that i understanding it's purpose i would also say distribution is the right name
23:09 kalkin- s/know/now
23:09 dugword joined #perl6
23:09 sjn the problem is that people from outside the Perl community understand that word differently
23:09 kalkin- also mi6 could loose the test function. zef does it already
23:10 ugexe it could lose build as well
23:10 Ben_Goldberg joined #perl6
23:11 RabidGravy well if you use it as a proper noun like Distribution then the problem goes away ;-)
23:11 kalkin- ugexe: btw  mind adding :8jobs to line 21 in Zef/Service/Tap.pm6? These would speed up the tests
23:11 kalkin- ugexe: partly. build regenerates META6.json and the README.md
23:12 kalkin- aehm not 21, 23
23:12 ugexe package is already defined https://github.com/perl6/specs/blob/master/S10-packages.pod
23:13 ugexe kalkin-: yeah but I think i would add it to the config.json so its configurable and defaults to something lower
23:14 RabidGravy It's a computer programming *language* it is allowed to define sets of symbols with meanings that may differ from other languages
23:14 kalkin- ugexe: I know i checked some PERL6 global for default amount of threads and it was around 16. I'm not sure if it's hardcoded or if it was a custom number for my cpu/os. If the last you could use that
23:15 kalkin- m: $*SCHEDULER.max
23:15 camelia rakudo-moar f6303d: ( no output )
23:15 kalkin- m: $*SCHEDULER.max.say
23:15 camelia rakudo-moar f6303d: OUTPUT«ThreadPoolScheduler.new(initial_threads => 0, max_threads => 16, uncaught_handler => Callable)␤»
23:15 ugexe usually you need to be explicity about things like that because some tests are written in such a way that the order matters
23:15 notviki nope; -o ServerAliveInterval=300000 didn't do it :(
23:15 ugexe explicit as in explicitly declare you wish to run multiple tests at once
23:17 kalkin- ugexe: sure, that there're actual distributions out there which do that?
23:17 ugexe dunno. even if there isn't people will write them like that eventually because testing with `prove -v -e 'perl6 -Ilib' t/` is a thing
23:18 ugexe of course best practice is to write your tests properly so you aren't doing things like generating files with 01-whatever.t that get used by 02-blah.t
23:18 mst right
23:18 mst if your test doesn't run correctly under the -j switch to prove, YHL
23:18 mst &
23:19 kalkin- ugexe: people should use zef test (which will do as many jobs as needed). We can teach them that, it's early enough
23:19 RabidGravy notviki, I think it's TCPKeepAlive=no
23:19 ugexe you are more optimistic than I am
23:20 kalkin- If i fully understand how the BPs—for creating, maintaining and distributing your Distributions—work I would document it in perl6/doc
23:21 Ben_Goldberg joined #perl6
23:21 kalkin- once it's documented beginners will learn the RIGHT WAY™
23:22 RabidGravy well I have made 57 releases so I kind of know
23:23 RabidGravy and every once in a while some kind soul will tell me I'm crap so I change things
23:26 ugexe kalkin-: https://github.com/skaji/mi6/blob/master/lib/App/Mi6.pm6#L93 (this is the build i was talking about)
23:27 RabidGravy I'm sure you've told me before but how do you get that work with zef?
23:27 ugexe zef build .
23:28 RabidGravy no the Build module without the panda dep
23:28 ugexe without zef its `perl6 -I. -Ilib -e 'use Build; Build.new.build($*CWD)'
23:28 ugexe oh
23:28 kalkin- hmm as far as I know i can specify to run some scripts during the build phase by zef, right? (So I could regenerate README.md and META6.json)
23:29 kalkin- (so i could completely rip out mi6 build)
23:29 ugexe https://github.com/niner/Inline-Perl5/commit/838d86ec2582410233a85253540970b3ab3c7d11 # this shows turning a panda build into a dep free build
23:30 RabidGravy yeah, I remember now
23:31 ugexe kalkin-: no. at one before 6.c yes you could. it was modeled after s22#hooks but everyone still wrote Build.pm because it works with panda
23:31 kalkin- ugexe: so zef doesn't support hooks, or just no one uses it?//
23:32 RabidGravy I've got a handful that still use the panda dependency, but no-one complained so I've not been sufficiently motivated to fix them
23:32 ugexe it does not support hooks anymore no. but i could reimplement now that panda is being deprecated
23:32 labster joined #perl6
23:33 kalkin- Is there somewhere documented how hooks should work? S22 just mentions them, but doesn't go in to details
23:33 ugexe zef will try to rewrite your META6 file on-the-fly at runtime to not use panda if you dont declare it as a dependency
23:34 RabidGravy I'm wondering whether you could make hooks work and ignore the Build.pm but make a "legacy support" Build.pm for panda
23:34 ugexe kalkin-: no. i would look at npm for inspiration but the general idea is they are just plain perl6 scripts and they would be run with certain ENV vars that inform it of whats going on
23:34 RabidGravy there are more than one party implied by "you" in that
23:34 shayan_ joined #perl6
23:35 kalkin- ugexe: i think it would be intersting to hook in at different times during the build, so you could generate some code before installing it
23:35 RabidGravy there are modules that do that
23:35 ugexe well, that is what it did heh. it was more "i have to refactor this for the GLR and remove concurrency stuff now that CUR has locks so I might as well skip this feature no one is using for now"
23:36 * kalkin- looking @npm scripts. something like that seems nice
23:37 RabidGravy anyway bed time for me
23:38 RabidGravy toodles
23:38 ugexe kalkin-: there were hooks for each phase (like build, test, install) as well as before and after
23:38 shayan_ joined #perl6
23:41 ugexe the more complicated part is figuring out all the ENV vars that should be set before invoking a hook, so such a hook script can know things like "what other packages are about to be installed" or "did some other action i'm waiting for occur yet?"
23:44 Geth joined #perl6
23:44 Geth geth-test/moew-branch: 9c4f259b33 | (Zoffix Znet)++ | README.md
23:44 Geth geth-test/moew-branch: meow1-0.835990422440354
23:44 Geth geth-test/moew-branch:
23:44 Geth geth-test/moew-branch: meow3
23:44 Geth geth-test/moew-branch: review: https://github.com/geth-test/commit/9c4f259b33
23:44 notviki :D
23:47 ugexe kalkin-: you could write a proposal to specify these things. but, and i brought this up before, they would also need to be installed (because an uninstall hook makes sense)
23:49 kalkin- ugexe: I'm not sure if you want a hook to be able to known what other packages are about to be installed, this can lead to chaos
23:49 kalkin- what if some packages will start waiting for each other to be installed?
23:50 ugexe then they were written poorly
23:50 kalkin- I would keep it to the specified dependencies in the phase (build/test)
23:51 kalkin- ugexe: ok, may be I'm seeing only part of a picture. why would you want to use such feature?
23:52 cdg_ joined #perl6
23:52 ugexe well i just made that up. but to play along maybe a build hook wants to see if some optional dependency is going to be installed or is in the process of being installed
23:53 kalkin- ugexe: in such case this should be somehow encoded in META6.json in the build-depends field
23:53 kalkin- so once in BUILD phase you check if Foo::Optional is available if not, you don't build the Optional part
23:53 ugexe there is nothing for optional depends. and in some cases you wont know what the optional depends is
23:54 kalkin- ugexe: what's wrong with extending META6 with that?
23:54 ugexe because you cant extend it for dependencies you dont know until run time
23:55 ugexe require $*ENV<FooApp_Tester>;
23:55 ugexe and i mean you cant extend it for that specific use case. adding an optional field for the module installer to make choices with makes sense
23:57 kalkin- what kind of dependencies are not know till runtime? does such use case exists?
23:57 ugexe and when i explain all of this I keep concurrency in mind, such that you should be able to build/test/etc multiple dependencies at once
23:57 ugexe i just showed you an example
23:58 ugexe right now there is something similar for (i forget the actual invocation) RAKUDO_EXCEPTION_HANDLER=whatever.pm
23:58 kalkin- ugexe: but this example is not important for build/test hooks
23:59 kalkin- (if you specify the optional deps)
23:59 ugexe you're underestimating the build process
23:59 ugexe you cant specific the optional deps in every situation - there is no way around this
23:59 kalkin- because in best case my build is happening in an isolated environment with only things it's specified in META6.json

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

Perl 6 | Reference Documentation | Rakudo