»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
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"
evalable6 AlexDaniel, rakudo-moar 5592db8: OUTPUT«(exit code 1) WARNINGS for /tmp/5asiWqWf3R:␤Useless use of "+" in expression "+\"a\"" in sink …»
AlexDaniel, Full output: gist.github.com/10b5e07a60ab12bbe7...f0b2c4b986
notviki Like "Error {first X number of characters of error}; see: "
AlexDaniel like this?
notviki e: $ = +"a"
evalable6 notviki, rakudo-moar 5592db8: OUTPUT«»
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 …»
notviki, Full output: gist.github.com/7e9f5ff7c15c9ad720...41e73eb734
AlexDaniel but that's on HEAD
notviki e: die "meow"
evalable6 notviki, rakudo-moar 5592db8: OUTPUT«(exit code 1) meow␤ in block <unit> at /tmp/1YYclH_bzN line 1␤»
notviki e: die "meowdsadasdasdsadsadasdasd asdasd asd asdasdsad asda sdas fsadgdsfghsdfgghdsfgh dsghgdfs hfsdghfsgh fsgh fgshsfg hgsfh sfgh sfg"
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␤»
notviki has no idea lol :)
But I guess yeah :)
e: die "meow" x 1000
evalable6 notviki, rakudo-moar 5592db8: OUTPUT«(exit code 1) meowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeowmeow…»
notviki, Full output: gist.github.com/5b7fe2e0946eff5bfd...7cbf29e8e9
notviki Yeah :D That
AlexDaniel notviki: ok: github.com/perl6/whateverable/issues/89 00:02
00:03 lostinfog left
notviki cool 00:03
00:03 rindolf left
notviki hm... seek before start of file throws but seek past end of file doesn't throw 00:06
Is that normal?
00:06 trnh left
raschip Soon we will have a library to share code between the bots. 00:06
AlexDaniel raschip: what do you mean by that? 00:07
notviki All the Whateverables share code
AlexDaniel yup
evalable6: source
evalable6 AlexDaniel, github.com/perl6/whateverable
AlexDaniel bisectable6: source
bisectable6 AlexDaniel, github.com/perl6/whateverable
notviki :)
raschip That will upset cinap_lenrek.
AlexDaniel notviki: what if I just make evalable answer on mc: ? 00:08
notviki Why not fix it for all bots? :)
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.
committable6 AlexDaniel, gist.github.com/6e5c6771f5644f8fa1...5208f7e230 00:10
AlexDaniel notviki: how would you print this kind of stuff partially?
notviki For that you wouldn't
raschip .u ♥🦋 00:11
yoleaux U+2665 BLACK HEART SUIT [So] (♥)
AlexDaniel so if there are more than one commit to test, it shouldn't?
u: ♥🦋
unicodable6 AlexDaniel, U+1F98B BUTTERFLY [So] (🦋)
AlexDaniel, U+2665 BLACK HEART SUIT [So] (♥)
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
AlexDaniel notviki: yea, I understand that 00:12
raschip Why do we need the ruby bot?
notviki Crap. My tests for Seek* are failing for SeekFromCurrent :S 00:13
AlexDaniel raschip: we don't need it for .u
raschip: but there are other commands like .tell
raschip: and I don't think we have a perl 6 bot for that yet
raschip I member now. 00:14
AlexDaniel raschip: also, we don't really know who hosts yoleaux…
we would have to take its database to make sure all messages are delivered 00:15
00:16 Actualeyes left
raschip Thanks for the explanation! 00:17
00:17 BenGoldberg joined 00:18 jp___ joined
raschip AlexDaniel++ 00:19
00:20 pmurias left
jp___ Hi, 00:23
I'm trying to use a perl6 grammar inside another one. You will find my testcase at :
gist.github.com/anonymous/76ed6fad...bdb7c46fb.
Unfortunately, when running this code,I get the error message :
Cannot assign to a readonly variable or a value
Any idea ?
Many thanks for your help.
notviki heh... smart of you to write at the top of the file to throw off error message line numbering :P 00:24
jp___ sorry 00:25
notviki prolly this one: gist.github.com/anonymous/76ed6fad...e1-txt-L49
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…»
notviki m: grammar Foo { token TOP { .+ } }; Foo.parse: "xxx", :actions(class { method TOP($z) { Foo.parse: "yyy" } })
camelia ( no output )
notviki yup
jp___ the problem is at the following line in fct : my $result= NVL.parse($sql, :act).made ;
notviki jp___: .parse sets the $/, so don't use it as the name of the match you're receiving
use some other var
AlexDaniel make $result ~= $<textfin>;
what's that?
notviki jp___: like $foo, and then you'd access its guts as $foo<sql><sqltext>.made;
00:27 cpage_ left
notviki Yeah, the make'age on this line looks odd: gist.github.com/anonymous/76ed6fad...e1-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.
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…»
notviki m: grammar Foo { token TOP { .+ } }; Foo.parse("xxx", :actions(class { method TOP($/) { make "foo"; make "bar"; } })).made.say
camelia rakudo-moar 5592db: OUTPUT«bar␤»
notviki right
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
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:29
jp___ You can find the code without any comment at gist.github.com/anonymous/710b65b9...86d151fdc. Soory again 00:30
notviki :)
raschip jp___: Don't be sorry, the explanation was a good idea. 00:31
jp___ Thanks 00:32
notviki Is .readchars supposed to move the current position (the .tell)?
oh yeah, it does 00:33
wtf...
jp___ ;)
notviki Seems .readchars moves the .tell position, but any subsequent .readchars still use the original positions :S
dammit
00:34 mr_ron left
notviki And it's absolutely not tested 00:34
(yet documented)
notviki switches to .read() for the purpose of this test 00:36
yey all pass \o/ 00:40
00:47 wamba left
notviki jp___: you saw the answers for your problem above, right? 00:49
We got kinda noisy... just making sure you saw them :)
00:50 cibs left 00:51 cibs joined
[Coke] notviki: we need a doc tag for things: "Version" (which could now contain "6.c", "speculative") 01:01
01:01 cpage_ joined
[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
[Coke] (or even "rakudo" for things like dd) 01:03
notviki yeah
[Coke] let me finish the bootstrappening, we'll have a nice button or something we can show then. 01:07
notviki \o/
01:08 jp___ left 01:14 bjz left 01:18 bjz joined 01:25 lukaramu left 01:30 Gasher left, dalek left 01:31 dalek joined, ChanServ sets mode: +v dalek 01:37 mr_ron joined 01:42 mr_ron left 01:50 dugword joined
SmokeMachine does the class Slang do anything? 01:57
but gist()?
github.com/rakudo/rakudo/blob/beec...e/Slang.pm 02:01
02:10 cinap_lenrek left 02:11 eiro joined 02:13 FROGGS_ joined 02:14 aindilis joined 02:17 FROGGS left, jhg joined 02:20 jhg left 02:32 kalkin- left, kalkin-_ joined
[Coke] $ perl6 -e 'run("perl6", "-e", "say 3", :out).out.say' # shouldn't this output 3? 02:36
It's blank here.
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 github.com/perl6/roast/commit/b3d3a736ee
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␤␤»
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
look
02:42 khw joined
hobbs [Coke]: I think .say is trying to print something into the pipe 02:42
perl6 -e 'run("perl6", "-e", "say 3", :out).out.slurp-rest.print'
(or .say, but then you get double the newline) 02:43
02:45 raschip left
geekosaur hobbs, actually it's trying to .say the pipe itself 02:45
02:46 ilbot3 left
geekosaur not the data from the pipe 02:46
and apparently .gist doesn't do anything useful in that case
hobbs odd 02:47
02:48 ilbot3 joined
notviki No, it's calling IO::Handle.say without any args, so it just prints the newline 02:53
s: run("perl6", "-e", "say 3", :out).out, 'say', \() 02:54
SourceBaby notviki, Sauce is at github.com/rakudo/rakudo/blob/ecde...le.pm#L686
notviki yup
wonder if there's any way to make it cry about stuff going the other way in teh pipe 02:59
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
put that in your smoke and pipe it.
notviki heh
geekosaur also *BSD pipes are bidirectional socketpairs 03:08
(and some programs use this) 03:09
samcv writing to stdin? 03:12
what does that *do*
geekosaur (but OS X went back to using traditional pipes in 10.3 or 10.4)
samcv i mean it makes sense it's possible. but is it just usually unused?
geekosaur on a tty? it writes to the terminal 03:13
and yes it
samcv writes where to terminal
appear as stdout or stderr or neither?
obviously it writes to it since you are writing to the pipe
geekosaur pyanfar Z$ echo hi >&0 03:14
hi
notviki :o
geekosaur controlling tty is by convention opened O_RDWR onto fd 0 and F_DUPFD-d onto 1 and 2
samcv sounds useful to abuse when you need more than just stderr and stdout
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:15
(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
geekosaur no, programs write to stderr
samcv depending on uh which side you're on
oh you mean from perspective of the tty
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
geekosaur if it's the controlling tty, all three are actually read/write
so /bin/more whch would normally only write to stderr actually read from it after the --More-- prompt
if isatty(2) 03:18
actually, hm, probably used stdout since if it's not to a tty then it should act like cat anyway
no need to defer to stderr 03:19
03:23 xtreak joined
hobbs notviki: yeah, that makes sense to me at least. 03:27
03:35 llfourn joined 03:36 cibs left, llfourn left 03:40 pierrot left, pierrot joined 03:41 llfourn joined 03:43 cibs joined 03:52 cibs left 03:59 cibs joined 04:24 Actualeyes joined 04:25 geekosaur left 04:28 geekosaur joined 04:30 geekosaur left, geekosaur joined 04:35 Actualeyes left, geekosaur left 04:37 geekosaur joined, cdg left 04:56 cdg joined 05:04 rpburkholder left 05:06 khw left 05:10 BenGoldberg left 05:16 cdg left, pierrot left 05:18 pierrot joined 05:26 dugword left 05:27 shayan_ joined, bjz_ joined 05:28 bjz left 05:31 AlexDaniel left 05:32 AlexDaniel joined 05:33 faraco joined
faraco hi, is there any precompiled HTML perl6 documentation anywhere? 05:33
05:36 shayan_ left 05:37 shayan_ joined
faraco hi 05:43
05:48 Cabanossi left 05:51 Cabanossi joined 05:52 faraco left 05:55 shayan_ left 05:56 shayan_ joined, xtreak left 05:57 xtreak joined 06:15 kyan left 06:18 baest joined 06:20 AlexDaniel left 06:21 CIAvash joined 06:26 faraco joined
faraco hi, do perl6 have `use strict`? 06:27
in perl5, you have them. How about perl6? Does perl6 need it at all?
06:29 ChoHag left
samcv perl 6 has it by default faraco 06:30
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
faraco samcv: oh I see, thanks samcv. 06:32
samcv if you have like some time you can build it yourself though 06:33
just clone/download github.com/perl6/doc and then run `make bigpage`
faraco samcv: about the html, I got some problems with compiling the p6doc (html compiling).
oh
samcv what were the problems?
maybe I can help
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 :)
you want it with syntax highlighting? 06:35
faraco I don't really mind about highlighting. When in my first time trying to compile the doc, it fails so badly. 06:36
samcv ok what command are you running? 06:37
faraco maybe, I downloaded it at the wrong time (deps broken or similar issue)
samcv do you want it on one page? or want to be able to browse the site locally
06:37 bjz_ left
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:37
06:38 bjz joined
samcv but make html if you want: bigpage and html normal 06:38
and run make htmlify if you don't want bigpage and just want like docs.perl6.org has 06:39
run make bigpage if you just want the bigpage (don't think that syntax highlights by default? not 100% sure)
faraco samcv: if I want a single page, wouldn't it be so heavy and laggy to open?
samcv yes
haha
at least i think so. my laptop is an x220
maybe would be nicer on a faster computer but. i usually just `make html` 06:40
06:40 ChoHag joined
faraco so, bigpage is single html, and make htmlify is like an organized html? like in the perl6 link? 06:42
samcv yeah
faraco oh alright, thanks. I'll try that out.
samcv k thanks; let me know if you have any issues.
06:44 shayan_ left
faraco okay, currently running `make htmlify`. Runnin' good so far. Erm, the loadDep part looks like npm interface. 06:45
samcv yeah the highlighter runs on node github.com/perl6/atom-language-perl6 06:46
i wrote that part of it at least
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
samcv: wow, you a maintainer of the doc?
samcv well i have been working on rakudo and moarvm and the docs and i'm the lead dev for the highlighter 06:48
but that also as well
faraco how long you been involved in Perl 6? Perl 6 looks promising as a language.
samcv uhm
a few months
faraco and any chance with Perl 5? 06:49
I'm a beginner to both.
samcv what do you mean any chance?
faraco I meant, do you also used to program in Perl 5
samcv yeah 06:50
faraco for years?
samcv i'm fairly newish to perl 5 though. no
like a year
faraco Oh. I just maybe 3 months.
samcv i guess i've been programming perl 6 for like 3 4 months?
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 [email@hidden.address] No repository field.
./util/compile-sass.sh
that error
samcv yeah that's fine
faraco Need either 'sass' command or CSS::Sass Perl 5 module
Makefile:23: recipe for target 'sass' failed
make: *** [sass] Error 1
samcv oh
ok you will need to install that perl 5 module
faraco oh 06:52
okay, let me try
samcv css::sass. the npm error you can ignore and maybe i should just fix somehow
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:53
samcv i have a few blog posts here cry.nu/ 06:54
should probably blog soon about some unicode stuff i've been improving in perl 6 :D lots of unicode fixes to moarvm :-D
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
and then the docs can help you out from there, but it gives you a good intro
06:56 dugword joined
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
and they're pretty short
faraco Is these concurrency stuff meant, that you can do 10 things in the exact same time? 06:59
samcv i mean they are meant to be able to speed things up 07:00
07:01 geekosaur left, dugword left 07:02 geekosaur joined
faraco how it can improve speed? In a nutshell? 07:02
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:04
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.
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
faraco and with parallel, if the user input anything, it also somehow triggers server that is previously idle. 07:08
and we can save resources ultimately.
samcv yeah
faraco oh, I see the idea now. Thanks.
samcv and do other things in the mean time
so you can be doing some things in the background and then easily trigger some thing on captured user input.
faraco oh, so we can use the resource for something else, instead of wasting them to check for input. 07:10
samcv well also the programmer can easily not have to worry about how to do it. if it's easily available 07:11
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).
samcv heh mostly no 07:13
faraco I want to practice perl 6 by porting, but I heard about Inline::Perl6 07:21
moritz it still make sense to port modules 07:22
then you can adapt them to take advantage of Perl 6's features and write more idiomatic APIs, for example
07:23 pecastro joined
samcv the perl 6 code is often much more maintainable and simple in my experience 07:25
and may be half the length
07:38 pecastro left, domidumont joined 07:44 domidumont left 07:45 ChoHag left, domidumont joined 07:52 ChoHag joined, RabidGravy joined 07:55 wamba joined 08:03 llfourn left 08:08 xtreak left 08:11 xtreak joined 08:12 faraco left 08:13 faraco_ joined
faraco_ hi again 08:13
about compiling the perl6 doc is now, bad for me.
I don't have enough memory.
My others programs and my pc basically jammed for half an hour, until I reboot. 08:15
where can i get the precompiled p6doc html/pdf to read offline. 08:16
I can do wget -c -r perl6 doc web, but I'm afraid the organization of the files will be ruined.
dalek c: 331472d | samcv++ | / (2 files):
Only alter filenames based on disallowed filenames per distro

Unixish systems only convert names that have a `/` in them, and on Windows replace those which have:
  / ? < > : * | " \
08:17
c: 93db5f6 | samcv++ | app.pl:
Make sure we only correct `::` into $COLON$COLON on MSWin
samcv uhm faraco_ 08:18
are you on linux or windows
faraco_ I'm on linux.
why? 08:20
samcv i'll just upload it to my server in a .tar file
faraco_ oh thanks 08:21
samcv i just built it
to make those changes you just saw in the log. that's why was asking to make sure you had linux 08:22
cause now uses some illegal characters in windows when you build on linux
faraco_ oh, I see
samcv see: docs.perl6.org/type/IO$COLON$COLONHandle
look at that terrible url name :(
faraco_ ah yeah 08:23
sigils
samcv i mean the sigils are just what it's replaced with, but.
it's just replaced because you can't have colon's in files on NTFS
they're not variables or anything
samcv hopes this doesn't break things tho 08:24
faraco_ the maintainer of the web had to do something then.
site*
samcv hmm?
faraco_ I mean, the URL?
I think I lost here. 08:25
samcv well no, building the page saves the files that way
because they are illegal on windows
they're static files
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
well not the sigils
but actual ::
faraco_ the colon?
samcv colons
yes
$ are allowed 08:27
faraco_ oh
samcv has nothing to do with variables at all, that's just what it ended up replacing it with
faraco_ hmm
samcv to work around windows not letting you do that
on linux only / is disallowed by the OS (though technically not by the file system) 08:28
but you wouldn't be able to access the file if it had a / in the name on disk
faraco_ ah I see 08:29
I'm pretty shocked..
actually
a quick google search
site:docs.perl6.org/ xhtml 08:30
samcv hm?
faraco_ found the precompiled html
samcv faraco_, cry.nu/files/doc.tar.xz
oh ok
anyway there it is if you want it non-onepage 08:31
how much ram did it end up using faraco_ ?
faraco_ samcv: pretty much to make everything stop blinking and moving.
mine only 32 bit 08:32
samcv how much is that though
faraco_ I can't really say how much, I can't even open tty to check memory.
samcv i mean how much do you have at least?
faraco_ oh
1GB
okay, thanks samcv for the tar. 08:34
I gonna download both, and make them as my reference.
the perl6 web or the github doc repo, should mention the precompiled html link. 08:35
In case, someone has a situation like me
where everything gonna be jammed at one point.
samcv i'll try and add that to the docs page faraco_ 08:36
perl 6 web has a link SOMEWHERE not sure where tho
faraco_ how about this? docs.perl6.org/perl6.xhtml 08:37
08:37 rpburkholder joined
faraco_ I don't know about non single page. 08:37
samcv there is no non-single page
faraco_ ah 08:38
anyway, thanks for guiding me samcv. 08:39
08:42 bwisti left
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
on the server
err
wait so i might be breaknig things 08:43
maybe
we will see when they rebuild on the server
i mean we'd need the links on the pages to have the nice url's and such
we already rewrite :: to $COLON$COLON (not sure if it only rewrites if the file is missing or not) 08:44
ok yeah i broke the site
it redirects to dodgy url
dalek c: cdbf2f5 | samcv++ | app.pl:
Revert "Make sure we only correct `::` into $COLON$COLON on MSWin"

This reverts commit 93db5f69ed7b39908480274d810aae0e0589ed26.
08:45
c: 5e284b0 | samcv++ | / (2 files):
Revert "Only alter filenames based on disallowed filenames per distro"

This reverts commit 331472d0bfb1f07def0fb978846afb33b197c1b6.
samcv i guess we will have to alter the server to do the opposite
to redirect $COLON$COLON to ::
so all current links from other pages will still work
at the same time we make this change
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
is the apache config for the server on github somewhere? 08:49
samcv well it _can_ but
idk RabidGravy
we do it by htaccess atm i think 08:50
so whoever runs that server
there's no .htaccess file in the docs github project
08:53 faraco_ left 08:59 llfourn joined 09:02 dugword joined 09:04 llfourn left 09:06 dugword left 09:17 astj joined
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:18
09:19 ChoHag left 09:21 ChoHag joined 09:30 llfourn joined 09:34 rindolf joined, jraglin left
RabidGravy there's something going on with the "lexical use" wrt to GTK::Simple which I don't quite understand 09:38
in the github.com/perl6/gtk-simple/blob/m...-world.pl6 it complains about not finding the GTK::Simple::App but *not* the other types 09:40
dalek osystem: 11eacc7 | (Asato Wakisaka)++ | META.list:
[SQL-NamedPlaceholder] Change META.info to META6.json
09:42
09:44 nowan left
RabidGravy 🥁 09:45
09:45 rindolf left 09:49 Tonik joined
dalek href="https://perl6.org:">perl6.org: 4501ae5 | (Naoum Hankache)++ | / (3 files):
standardize links to the docs
09:51
href="https://perl6.org:">perl6.org: 47b85f3 | (Juan Julián Merelo Guervós)++ | / (3 files):
Merge pull request #70 from hankache/master

standardize links to the docs
09:55 nowan joined 10:01 astj left 10:04 rindolf joined 10:06 wamba left 10:07 andrzejku joined, andrzejku left 10:08 andrzejku joined
dalek k-simple: a0b79e1 | RabidGravy++ | examples/ (9 files):
Ensure the examples have "use GTK::Simple::App"

Fixes #73
10:22
k-simple: eec866c | RabidGravy++ | README.md:
GTK::Simple::App not in README synopsis

Fixes #73
10:31 bartolin joined 10:41 llfourn left
dalek c: 24b5ad8 | samcv++ | doc/Language/quoting.pod6:
Fix highlighting on /language/quoting page
10:45
synopsebot6 Link: doc.perl6.org/language/quoting
samcv hmm RabidGravy 10:46
i have never used IBM MQ
11:01 nullmove joined 11:02 nullmove left
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
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:05
I'm firmly convinced that this is the kind of application domain that Perl 6 will excel at 11:07
11:07 xtreak left
RabidGravy I've got the start of some "message oriented middleware" thing knocking around somewhere 11:12
11:13 llfourn joined 11:15 labster left 11:19 regnarg joined 11:25 sjoshi joined 11:26 astj joined 11:28 Actualeyes joined 11:35 mr-foobar joined 11:36 TEttinger left 11:40 sjoshi left 11:53 eyck left, Gasher joined
cosimo_ morning folks 12:03
$morning
RabidGravy morning 12:04
cosimo_ anybody wrote/writing chat bots in perl6 ? 12:05
RabidGravy well it's actually just turned afternoon here but hey
cosimo_ and, a OAuth[12] client? 12:06
RabidGravy there are IRC bots, I think the majority of the bots here are written in Perl 6 now 12:07
I wrote just enough of OAuth to get Webservice::Soundcloud working, but there's also github.com/bduggan/p6-oauth2-client-google 12:08
cosimo_ irc bots code is published somewhere?
RabidGravy I guess there is enough out there to make something more generic, I thought someone was working on one 12:09
github.com/perl6/whateverable 12:10
but they all use IRC::Client I think 12:11
cosimo_ github.com/TiMBuS/Net--IRC/ seems to be it 12:12
ah, IRC::Client
RabidGravy: thanks
12:12 llfourn left
RabidGravy yeah IRC::Client seems to get a reasonable workout :) 12:17
cosimo_ RabidGravy: your oauth code published too? 12:19
RabidGravy yeah, it's in github.com/jonathanstowe/WebServic...WebService 12:20
I keep meaning to break it out into a separate module
but keep finding reasons not to
but feel free to take what you want
cosimo_ need a Slack client, so maybe that's the opportunity 12:21
what does '%params.push: %args.pairs;' mean? %params = (%params, %args) ? 12:23
later in the code there's also a '%params = %params, %args;' 12:24
RabidGravy yes 12:26
I haven't looked at that code for ages, I think it could probably do with some love to be honest 12:29
12:31 ChoHag left 12:33 ChoHag joined
RabidGravy Hmm there are the emails from IBM, I wonder which of these stupid filter rules is hiding them from me 12:37
12:38 faraco joined
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:39
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
faraco for example? 12:40
jnthn sub first(@xs, &predicate) { for @xs -> $x { if predicate($x) { return $x } } } 12:41
faraco how about just putting $x?
it doesn't return?
12:41 pmurias joined
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.
pmurias jnthn: if handlepayload is present it should always contain the entire body of the sub/method? 12:47
jnthn pmurias: I don't believe it's constrained in that way 12:48
jnthn checks
pmurias: No, it just protects the code in argument 0 12:49
It's a form of handle that avoids any allocations 12:50
pmurias isn't it used only for returns? 12:52
12:52 AlexDaniel joined
timotimo it's a potential optimization for other cases 12:54
jnthn Yeah, only for returns at the moment but I I think it's got wider applicability 12:55
RabidGravy dafuq! IBM make an Informix server for Raspberry Pi 12:57
12:59 infrabyte joined
RabidGravy however I think I am going to ignore that for the time being 12:59
jnthn
.oO( enterpise )
13:03 xinming joined
timotimo oooooooh 13:04
13:07 espadrine joined
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:09
13:13 AlexDaniel left
RabidGravy ooh cunning, host by the ncurses termcap file having a capability "k;" 13:15
SmokeMachine is there anything that automatically generate README.md from pod? 13:16
13:16 infrabyte left, infrabyte joined
rightfold GitHub can also render README.pod. It doesn't have to be markdown. 13:17
RabidGravy there's a Pod::To::Markdown
SmokeMachine rightfold: good to know! thanks! 13:18
RabidGravy so you can do "perl6 --doc=Markdown <pod file>"
SmokeMachine rightfold: but perl6 pod?
rightfold No idea
RabidGravy works reasonably well
rightfold Only one way to find out!
SmokeMachine RabidGravy: thanks!
13:18 lukaramu joined
RabidGravy keeps meaning to make Pod::To::Man 13:19
then the LaTex horrors prevent it
oh wait, man is troff isn't it 13:20
even worse ;-)
do people even use troff for anything other than manpages now
rightfold Pod::To::Pod 13:21
tadzik Pod::To::POD may make sense :)
RabidGravy somewhere I worked years ago we did invoices with troff
rightfold Formatter :P
We did invoices with LaTeX. Worked well except for € and accents. 13:22
SmokeMachine rightfold: I think its broken: github.com/masak/temporal-flux-per...tation.pod
rightfold 😂
RabidGravy is there a way in a P6 regular expression to express "the <graph> class *except* #" ?
I've tried a variety of different formulations and none seem to work 13:23
or more probably for this the <graph> class except #:=@ 13:24
13:24 infrabyte left 13:25 infrabyte joined
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 <[#:=@]>
worst-case there's always <?{ }>
but really it should be possilbe to have <+graph -[#:=@]> 13:28
RabidGravy yeah but 13:29
m: say "#abc@:=f" ~~ m:g/[<graph> & <-[#@:=]>]/
camelia rakudo-moar c405f0: OUTPUT«(「a」␤ graph => 「a」 「b」␤ graph => 「b」 「c」␤ graph => 「c」 「f」␤ graph => 「f」)␤»
RabidGravy seems to work fine 13:30
timotimo that looks good?
good
you're working on a pure-perl termcap parser or something?
RabidGravy yeah
timotimo .u square 13:31
yoleaux U+005B LEFT SQUARE BRACKET [Ps] ([)
U+005D RIGHT SQUARE BRACKET [Pe] (])
U+033B COMBINING SQUARE BELOW [Mn] (◌̻)
timotimo u: square
unicodable6 timotimo, U+005D RIGHT SQUARE BRACKET [Pe] (])
timotimo, U+005B LEFT SQUARE BRACKET [Ps] ([)
timotimo, gist.github.com/7a8fb9f26f3ed76b1f...7cac657396
RabidGravy infact I have been working on it since "Mon Mar 23 16:07:26 2015" apparently
timotimo wow 13:32
13:32 mr_ron joined
RabidGravy infact it may have been the first module I started 13:33
I put it aside as it was taking like twenty seconds to parse the termcap
13:34 confundus left
timotimo urgh :) 13:34
is it better today? it ought to be, but the regex engine hasn't improved terribly much
RabidGravy I dunno, I grabbed a newer termcap to test with and it's having all sorts of weird things 13:35
13:35 confundus joined
mr_ron m: gist.github.com/ronaldxs/fa513b686...5616892919 13:37
camelia rakudo-moar 6888f0: OUTPUT«True␤True␤False␤False␤»
mr_ron Unless something I missed - rakudobug soon 13:38
timotimo m: say so "2" ~~ /<+[2] +[2]>/
camelia rakudo-moar 6888f0: OUTPUT«True␤»
timotimo m: say so "2" ~~ /<+[2] +[q]>/
camelia rakudo-moar 6888f0: OUTPUT«True␤»
timotimo seems interesting 13:39
it might accidentally use the preexisting alpha rule?
RabidGravy ah 13:40
mr_ron last test case in gist
timotimo m: gist.github.com/timo/e6849d367da1a...2c9f024d2c
camelia rakudo-moar 6888f0: OUTPUT«True␤True␤True␤False␤»
timotimo look, renaming it from alpha to garble makes it pass to our expectations
masak g'day, #perl6 13:41
mr_ron yes garble like alpha1 - no conflict with internal char class
timotimo ah, ok
13:42 rafaschp joined
RabidGravy so the "Atari ST" has a capability with '#' in it 13:42
this may require a rethink 13:43
rafaschp rethinks. 13:46
13:50 confundus left 13:57 eitan joined 13:59 pierrot left 14:00 faraco left, pierrot joined 14:01 FROGGS_ left, FROGGS_ joined 14:03 dugword joined 14:07 dugword left 14:08 mr_ron left, regnarg left 14:09 thayne joined 14:10 ChoHag left 14:11 ChoHag joined 14:13 bjz left 14:14 curt_ left 14:20 MasterDuke left 14:28 infrabyte left
RabidGravy ^^\s*$$ should match a potentially empty line shouldn't it? 14:36
timotimo m: say "\n" ~~ / ^^ \s* $$ /
camelia rakudo-moar 012850: OUTPUT«「」␤»
timotimo looks like
m: say "" ~~ / ^^ \s* $$ /
camelia rakudo-moar 012850: OUTPUT«「」␤»
RabidGravy yeah, this weird, I've always been useless with regular expressions 14:38
kalkin-_ m: "foo/".IO.absolute.WHAT.say 14:50
camelia rakudo-moar 012850: OUTPUT«(Str)␤»
kalkin-_ Woot?
The docs says it should return IO::Path
docs.perl6.org/type/IO::Path#method_absolute
bug in docs, bug in rakudo or do am I just confused? 14:51
14:51 kalkin-_ is now known as kalkin-, confundus joined
rafaschp m: "foo/".IO.WHAT.say 14:53
camelia rakudo-moar 4ab020: OUTPUT«(Path)␤»
rafaschp m: "foo/".IO.absolute.say
camelia rakudo-moar 4ab020: OUTPUT«/home/camelia/foo␤»
RabidGravy bug in docs, it's tested as being a string 14:54
14:55 khw joined 14:56 regnarg joined
rafaschp "/home/camelia/foo/".IO.absolute.WHAT.say 14:57
m: "/home/camelia/foo/".IO.absolute.WHAT.say
camelia rakudo-moar 4ab020: OUTPUT«(Str)␤»
15:13 regnarg left
rafaschp m: "/home/camelia/foo/".IO.WHAT.say 15:18
camelia rakudo-moar 3d1d69: OUTPUT«(Path)␤»
rafaschp m: "{"foo/".IO.absolute}".IO.WHAT.say 15:19
camelia rakudo-moar 3d1d69: OUTPUT«(Path)␤»
15:20 CIAvash left 15:33 astj left 15:36 infrabyte joined 15:41 setty1 left 15:43 confundus left 15:48 ChoHag left 15:49 confundus joined 15:56 ChoHag joined 16:00 Actualeyes left
rafaschp RabidGravy: Is there a motive for them to retur Str instead of Path? 16:03
16:04 CIAvash joined
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 ."?
notviki yes 16:06
RabidGravy if you have a Path object then it doesn't matter how the path looks
notviki zef install --depsonly .
SmokeMachine notviki: thanks 16:07
notviki: will it install the testdeps too? 16:11
16:13 aindilis left
notviki I don't know 16:14
16:14 aindilis joined
confundus Is there any example of a toy interpreter/compiler written in Perl 6 using Grammar? 16:17
16:17 ChoHag left
notviki haha 16:17
confundus: well, Perl 6 itself ;)
timotimo we have toy compilers written in nqp. nqp has the full grammar capabilities that perl6 also has 16:18
007 also exists, which is a little bit more than a toy
notviki confundus: this course gouse over building PHP-ish and Ruby-ish languages using nqp (a subset of Perl 6; more or less): edumentab.github.io/rakudo-and-nqp-...ls-course/ 16:19
confundus thanks, I was looking for something small in scope
16:19 statisfiable6 left 16:21 thundergnat joined, statisfiable6 joined
rafaschp confundus: have a look at the examples: examples.perl6.org/categories/interpreters.html 16:23
thundergnat howdy #perl6 16:26
16:26 statisfiable6 left
rafaschp o/ 16:26
notviki \o
rafaschp RabidGravy: Thanks.
timotimo howdyhow
16:27 statisfiable6 joined
thundergnat Is there a simple way to unpack a list of lists of lists one level into a list of lists? 16:27
Let me show an example. 16:28
m: say (3..6).combinations(3)».permutations
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)))␤»
thundergnat I wan that, only itemized into a list of lists 16:29
*want
timotimo u: smiling face 16:30
unicodable6 timotimo, U+263A WHITE SMILING FACE [So] (☺)
timotimo, U+263B BLACK SMILING FACE [So] (☻)
thundergnat I can completely flatten and rebuild it, bu that seems kind of hacky to me.
unicodable6 timotimo, gist.github.com/d0b5edfba7c79ae2e8...8307269cfa
timotimo where is upside-down smiling face? :\
u: upside down
unicodable6 timotimo, U+1F643 UPSIDE-DOWN FACE [So] (🙃)
timotimo aha!
confundus rafaschp: that looks very neat, thanks! 16:31
16:31 zacts left
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))␤»
rafaschp confundus: Any time.
16:36 aindilis left, Wanderer68 joined 16:47 infrabyte left
rafaschp m: (3..6).combinations(3)».permutations.flat 16:48
camelia ( no output )
CIAvash m: say (3..6).combinations(3).map: |*.permutations
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))␤»
rafaschp m: say (3..6).combinations(3)».permutations.flat
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)␤»
rafaschp What does the docs mean when they say "flat does not recurse into sub lists"? 16:49
16:49 girafe joined
notviki Probably an error. 16:50
m: say flat (1, 2, (3, 4), $(5, 6)) # it doesn't flatten itemized lists
camelia rakudo-moar 3d1d69: OUTPUT«(1 2 3 4 (5 6))␤»
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
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␤»
rafaschp m: my @arr = (3..6).combinations(3); @arr>>.permutations 16:53
camelia ( no output )
rafaschp m: my @arr = (3..6).combinations(3); @arr>>.permutations; say @arr
camelia rakudo-moar 3d1d69: OUTPUT«[(3 4 5) (3 4 6) (3 5 6) (4 5 6)]␤»
rafaschp m: my @arr = (3..6).combinations(3); say @arr>>.permutations;
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)))␤»
thundergnat CIAvash: ah! That looks promising
RabidGravy yeah that sentence would imply it doesn't do
m: say flat (1, 2, (3, 4, (5, 6, ( 7, 8))))
camelia rakudo-moar 3d1d69: OUTPUT«(1 2 3 4 5 6 7 8)␤»
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:55
rafaschp Anyway, I think there should be a function that acts in the way the docs describe, not going into sublists. 16:56
Just undoing the top level nesting. 16:57
thundergnat CIAvash Thanks. That works the way I want in my (larger) application.
notviki heh
thundergnat Thank you everyone for looking / suggestions. 16:58
notviki rafaschp: isn't that what slip's for? :)
rafaschp Which is exactly what CIAvash did there. 17:00
m: say (3..6).combinations(3)».permutations.slip
camelia rakudo-moar 3d1d69: OUTPUT«No such method 'slip' for invocant of type 'List'␤ in block <unit> at <tmp> line 1␤␤»
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
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))␤»
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:14 thayne left
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))␤»
rafaschp m: say (3..6).combinations(3).map |*
camelia rakudo-moar 3d1d69: OUTPUT«{ ... }␤»
17:17 cdg joined
RabidGravy still think this termcap parser is too slow 17:17
17:18 pierrot left, pierrot joined
notviki What's IO::Blob HTTP::Server::Tiny is givin' me? I tried to .decode it but it tells me no such method 17:18
buggable: eco IO::Blob 17:19
buggable notviki, IO::Blob 'IO:: interface for reading/writing a Blob': github.com/moznion/p6-IO-Blob
notviki ah
17:22 cdg left 17:28 confundus left 17:32 jdmmmmm left 17:38 girafe left 17:40 espadrine left 17:41 dugword joined, dugword left, dugword joined 17:51 andrzejku left
kybr u: HEBREW 17:52
unicodable6 kybr, U+0591 HEBREW ACCENT ETNAHTA [Mn] (◌֑)
kybr, U+0592 HEBREW ACCENT SEGOL [Mn] (◌֒)
kybr, gist.github.com/7844a44d0b9d1250b1...548da618a5 17:53
17:56 bwisti joined
notviki eheheehe 18:01
notviki notices [Coke]'s GitHub Webhooks article's code has arbitrary code execution hole :)
18:01 statisfiable6 left 18:02 cdg joined
kybr u: BOX DRAWINGS 18:21
unicodable6 kybr, U+2500 BOX DRAWINGS LIGHT HORIZONTAL [So] (─)
kybr, U+2501 BOX DRAWINGS HEAVY HORIZONTAL [So] (━)
kybr, gist.github.com/65c301c875880614b0...cb0094b821
18:21 shyam-id-au joined
shyam-id-au Is Perl 6 ready for production yet? 18:22
stmuk depends but generally yes (at least for some tasks)
notviki shyam-id-au: "ready for production" means very diffent things for different people. 18:23
shyam-id-au stmuk: What tasks is it not ready for? 18:27
notviki: I mean like should I completely abandon Perl 5?
18:27 BenGoldberg joined
notviki shyam-id-au: Perl 5 is a different language. 18:27
shyam-id-au: your decision to abandon it has no relation to Perl 6. 18:28
shyam-id-au: "Is C++ ready? Should I abandon C"
shyam-id-au notviki: Does it make sense to use both?
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?
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:30
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:31
stmuk shyam-id-au: speed critical ones as notviki says 18:32
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:33
mst shyam-id-au: I'm very much enjoying the "use both" approach 18:36
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
geekosaur shyam-id-au, there's still known issues relating to threading, for example 18:38
also the JVM port is lagging quite a bit and still prone to odd errors
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
memory leaks have also gotten a lot of work but need a lot more
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:40
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 osystem: 3f147dd | (Fernando Santagata)++ | META.list:
Two new modules

Archive::Libarchive::Raw - a NativeCall interface to libarchive. Archive::Libarchive - an OO interface to libarchive.
osystem: e974ef0 | (Juan Julián Merelo Guervós)++ | META.list:
Merge pull request #281 from frithnanth/patch-3

Two new modules Thanks a lot for the submission.
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
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␤»
notviki :)
18:52 ufobat joined 18:53 bwisti left
BenGoldberg And of course NativeCall is awesome for using libraries which don't yet have a perl6 module. 18:53
shyam-id-au So would you recommend abandoning Perl 5 when Perl 6 catches up in stability/optimisation/modules? 18:56
notviki haha
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:57 Gasher left 18:58 shayan_ joined
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? github.com/zoffixznet/geth/blob/ma...eth.p6#L16 They're emited here: github.com/zoffixznet/geth/blob/ma...ks.pm6#L18 19:00
19:01 hartenfels joined
notviki hah 19:02
lol, I forgot to stick the server into its own thread :P
But which I mean I forgot to type one word of code: "start" :P 19:03
[Coke] can we get tmux-latest on irc.p6c.org? 19:04
19:06 bwisti joined
RabidGravy notviki, yeah, it will never leave the TWEAK 19:06
19:06 espadrine joined
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
I put that in there for precisely that use case
(where you want to embed the server in a larger application,) 19:08
19:12 labster joined
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
I'm not seeing anything obvious with a quick scan through the docs.
19:15 shayan_ left
notviki m: say 3.14e308.split: "e" 19:15
camelia rakudo-moar 3d1d69: OUTPUT«(Inf)␤»
notviki m: say 3.14e300.split: "e"
camelia rakudo-moar 3d1d69: OUTPUT«(3.14 +300)␤»
notviki shrugs
thundergnat m: say 2.345e9 19:16
camelia rakudo-moar 3d1d69: OUTPUT«2345000000␤»
thundergnat m: say 2.345e9.split: 'e'
camelia rakudo-moar 3d1d69: OUTPUT«(2345000000)␤»
thundergnat hmm
notviki m: say 2.345e9.fmt('%e').split: 'e' 19:18
camelia rakudo-moar 3d1d69: OUTPUT«(2.345000 +09)␤»
notviki m: say 2.345e9.fmt('%e').split('e')».Numeric
camelia rakudo-moar 3d1d69: OUTPUT«(2.345 9)␤»
notviki m: say 2.345e-9.fmt('%e').split('e')».Numeric
camelia rakudo-moar 3d1d69: OUTPUT«(2.345 -9)␤»
thundergnat Looks like that would work 19:19
Thanks 19:20
BenGoldberg notviki, Geth is *such* a creepy name for an irc bot. Surely something like HAL would be nicer? ;)
notviki HAL is taken
19:21 wololoooo joined
notviki Also... I never seen 2001 19:21
While I did have many battles with the Geth :P
RabidGravy notviki, BTW if you rename the supply attrbute to Supply, you can just stick the object in the whatever directly 19:22
it does a coercion thingy
geekosaur notes with amusement japhb's suggestion elsewhere 19:23
wololoooo Hello guys i have an issure, not sure if it is a bug
loop ($i=0;$i<10;$i++) gives an error 19:24
but not loop ($i=0;$i <10;$i++)
there is a space between $i and <
notviki RabidGravy++ thanks.
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␤»
wololoooo yes that is the error
hobbs well, that's a pretty clear error.
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>)
notviki wololoooo: well... the error does say you need whitespace there. Why would that be a bug?
wololoooo then why should $i>10 work 19:26
i dont see consistency there
geekosaur and that's a case that is hard to handle properly
notviki wololoooo: also for ^10 {...} is the common way to write such a loop; or for ^10 -> $i { ... } if you actually need the $i
wololoooo: > is not ambiguous 19:27
geekosaur wololoooo, the point is that < can be a postcircumfix (subscript-like operator)
wololoooo @notviki that was an example
19:27 zakharyas left
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:27
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++) {};
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…»
geekosaur and a possibly misleading error message is better than charging on through with the wrong interpretation
gfldex wololoooo: see ^^^
notviki would guess this has more to do with single-pass parsing rather than wrong interpretations 19:29
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␤»
hartenfels There's a bug in that error message though, isn't there? It should say '>' instead of $stopper.
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
geekosaur yeh, that looks like interpolation fail (probably in a '' instead of a "" string)
gfldex i shall rakudobug 19:31
notviki m: try 'sub postcircumfix:«> <»($a){}; loop (my $i=0;$i>10;$i++) {};'.EVAL; say $!.^name
camelia rakudo-moar 3d1d69: OUTPUT«X::Comp::FailGoal␤»
geekosaur m: my $a = {a => 1, b => 2}; say $a<b> # this is what perl6 thinks it is seeing
camelia rakudo-moar 3d1d69: OUTPUT«2␤»
notviki s: X::Comp::FailGoal, 'message', \()
SourceBaby notviki, Sauce is at github.com/rakudo/rakudo/blob/3d1d...on.pm#L705
gfldex tries to finish the bugreport before notviki fixed the bug 19:34
notviki nah, I'm not fixing it :)
At least not today
wololoooo @BenGoldberg i didnt get what «> <»($a){}; is, but i get the point that< has multiple roles
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
gfldex filed as #130528 19:36
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130528
hartenfels Perl6 allows it too, but only if there's no ambiguity.
Which is why > works.
gfldex Perl 6 is a dynamic dynamic language :)
hartenfels ...until you define something that breaks it, that is.
notviki wololoooo: by backtracking and using the different option. We tend to avoid that and parse everything in a single go.
In exchange, you need to put whitespace in certain places. 19:37
gfldex even the errors are dynamic :->
gfldex sharpens his pencil
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
yoleaux 2 Jan 2017 06:34Z <CIAvash> TimToady: any thoughts on this: irclog.perlgeek.de/perl6/2016-12-22#i_13784143
3 Jan 2017 18:35Z <DrForr> TimToady: private question for you when you have a few minutes.
5 Jan 2017 02:35Z <AlexDaniel> TimToady: perhaps you can take a look at RT #130508 ?
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130508
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)?
notviki wololoooo: you don't need parens with if
wololoooo im used to it from c++ 19:41
:D
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:42
19:50 ChoHag left
gfldex iswitftlybloggedalittle: gfldex.wordpress.com/2017/01/07/le...dangerous/ 19:50
19:52 ChoHag joined
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:53
19:53 labster left
geekosaur or the browser has, html being what it is 19:55
gfldex good point
  does work tho
wololoooo @gfldex "put a while space" 19:56
gfldex wololoooo: thanks 19:57
at least the typo fits the topic
19:59 jdmmmmm joined 20:03 CIAvash left 20:06 kyan joined 20:07 wololoooo left 20:08 pierrot left
RabidGravy 𝄞 I belong to the g𝄾eneration 20:08
<blank> 20:09
something weird going on with the direction of the rests in this
20:10 pierrot joined 20:14 telex joined 20:17 dugword left 20:20 AlexDaniel joined
[Coke] ¶ - ok I can type unicode directly, but if I cut and paste it, I get codes. 20:21
0x1d5390x1d5660x1d5650x1d5650x1d5560x1d5630x1d5570x1d55d0x1d55a0x1d5560x1d564 (cut and paste "butterflies" from github.com/coke/p6-unicode-mangler)
masak .oO( all I see is butterfly, butterfly, butterfly... ) 20:22
20:23 wololoooo joined 20:24 bisectable6 left, wololoooo left 20:25 bisectable6 joined, statisfiable6 joined
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:26
[Coke] geekosaur: irssi running in tmux on irc.p6c.org - if i paste that into a non irssi window, it works. 20:27
(er, a tmux window running on irc.p6c that isn't running irssi)
geekosaur ah, yeh, tmux would also figure into it
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
20:28 statisfiable6 left
[Coke] it all worked fine under screen. :| 20:28
20:28 statisfiable6 joined
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:29
20:31 statisfiable6 left, statisfiable6 joined, dugword joined, dugword left
kalkin- m: say "/foo/asd".IO ~~ "foo/asd/".IO 20:32
camelia rakudo-moar 3d1d69: OUTPUT«False␤»
kalkin- this is why i wanted "/foo/asd".IO.absolute to return a IO::Path instead of Str
m: say "/foo/asd".IO.absolute ~~ "/foo/asd".IO.absolute 20:33
camelia rakudo-moar 3d1d69: OUTPUT«True␤»
kalkin- m: say "/foo/asd".IO.absolute ~~ "/foo/asd/".IO.absolute
camelia rakudo-moar 3d1d69: OUTPUT«True␤»
kalkin- m: say "/foo/asd".IO ~~ "/foo/asd/".IO
camelia rakudo-moar 3d1d69: OUTPUT«True␤»
kalkin- ups
weird, this works
hmm need to check my production code
RabidGravy yeah you don't need it
geekosaur hm, what is IO::Path.ACCEPTS doing there? 20:34
RabidGravy just looking
nqp::p6bool(nqp::iseq_s($.abspath, nqp::unbox_s(other.abspath))); 20:35
so yes, exactly whay kalkin- wants :)
20:35 jdmmmmm left
kalkin- m: "/asd/foo".IO.relative().WHAT.say 20:40
camelia rakudo-moar 3d1d69: OUTPUT«(Str)␤»
kalkin- hmm relative is also wrongly documented
m: "/asd/foo".IO.parent.WHAT.say 20:41
camelia rakudo-moar 3d1d69: OUTPUT«(Path)␤»
20:43 FROGGS_ left 20:44 domidumont left
moritz what's an idiom for "take elements from a list while/until &predicate is satisfied"? 20:49
maybe List.head could get a Callable candidate? 20:50
(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 } }?
s/tage/take/
or just use grep? 20:52
ohh until sorry
moritz until?
kalkin-: the only thing wrong with your propose solution is that it's not very concise
notviki m: say .head: .first: :k, *.is-prime.not given (3, 5, 7, 9, 11)
camelia rakudo-moar 3d1d69: OUTPUT«(3 5 7)␤»
moritz notviki: ah, using this list twice, that works 20:53
notviki m: say (3, 5, 7, 9, 11).grep: {.is-prime or last} 20:55
camelia rakudo-moar 3d1d69: OUTPUT«(3 5 7)␤»
kalkin- TIL about is.prime or last. 20:56
there're so many nice small idioms in Perl6 and so much to learn…
masak I'm still of two minds about the whole "grep et al are loops" thing... :) 21:02
maybe I'm a traditionalist, for no good pragmatic reason
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:03
geekosaur masak, proceduralist :p 21:04
21:07 cdg left
masak yeah, something like that 21:08
I think with old age I grow more attached to simple, predictable features with few moving parts
Perl in some ways is not designed to cater for that demographic :P 21:09
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
masak don't get me wrong; Perl 6 is still my favorite language for many things
moritz: to answer your question, though: I've probably been writing more JavaScript in 2016 than any other language. 21:13
moritz: if that counts as "gravitating towards" :)
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
plus, I find ES6 + additions to be a fairly bearable language, actually
I would love to write an `is parsed` macro in 007 in 2017. in fact, let me precommit to that. 21:15
it's not that faraway a goal.
21:16 ufobat left, newbie1 joined
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
What can I do with 007 today?
21:17 vike left 21:19 pmurias left
moritz you can learn about compiler implementation in a high-level language, for example 21:19
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?
masak kalkin-: if your interests are distinct from that, then quite honestly 007 might not do much for you :)
RabidGravy: well, yes
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
masak RabidGravy: I should pick it up again soonish to see if Rakudo handles it better these days
kalkin-: cool
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
though I did have one compiler under my belt before that, which helped (Yapsi)
if you've implemented lexical scoping at least once, you're already corrupt^Wenlightened
kalkin- masak: heard the same about monads. Still waiting for the enlightenment :D 21:24
RabidGravy kick in the monads
masak kalkin-: ah, don't tempt me :) 21:25
this channel is tolerant of my OT-ing, but monads might be crossing the line...
masak loves explaining things :>
moritz would love to read that explanation
hartenfels too 21:26
masak ok, meet me at #perl6-monads :)
RabidGravy I'm kinda whatever n the subject ;-)
geekosaur admits curiosity as to how this burrito is assembled :p 21:27
21:27 ilbot3 left, ilbot3 joined
RabidGravy puts the termcap thing back in the box for another year 21:34
21:34 AlexDaniel left 21:36 dugword joined 21:43 vike joined
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:47
which is the canonical way? 21:48
and what if the META6.json defined version: "*" and your module defines class Foo:ver(v10)?
21:48 cdg joined
kalkin- which is more authoritative? 21:49
21:50 rba_ joined
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
so I'd tend to write those things only in the META6.json file
7w 12
sorry
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
moritz kalkin-: might be an artifact from the times before you could do that in the META6.json; not sure though 21:53
21:53 cdg left
notviki As I recall it, only the META version is used. 21:54
easy enough to test tho
kalkin- yes META one is used 21:55
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
well at least not via version field
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 .`
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"
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?
is it intentional or just not implemented properly yet?
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*
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.)
ugexe sjn: explain further what you want temporary to do 22:00
kalkin- sjn: may be --install-to will help you?
ugexe: ahh i see distribution vs module, make sense
but why do I want to version Distributions, when I'm actually interested in the version of the classes/modules/grammars 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)
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
kalkin- sjn: and dont forget to add the install-to path to your PERL6INCLUDE (?)
not sure how the global is called
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?
ahah
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.
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
22:05 shyam-id-au left
sjn Hm 22:06
22:06 dugword left
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
so installing it would fail, or trying to use it after installing would
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?)
ugexe: ahh nice
ugexe kalkin-: it *should* be App-Foo according to s22, but I could never enforce this because everyone expects App::Foo to work 22:09
22:11 TEttinger joined
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
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).
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)"
ugexe well we dont distribute individual modules
if you hav e a distribution with 100 provides, would you make 100 tar balls? 22:14
when you want to uninstall those 100 tar balls do you want to do it individually for each one?
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
ugexe because you can have a module named App-Foo 22:15
and what do you do when the name is just 'Foo"
notviki :D
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:16
ugexe you shouldnt need a package manager to do it 22:17
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:18
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
kalkin- ugexe: 100 individual modules instead of on Distribution providing the modules? *confused* 22:20
s/on/one 22:21
ugexe the Distribution has a single META6.json that declares all of that
RabidGravy so you *do* understand the concept of "Distribution" then ;-p 22:22
kalkin- Ok i will backup 22:23
My issue is that Distribution is first class citizen
While the first class citizen should be a module
the distribution should be just a delivery way, like a deb package
hmm, wait 22:24
may be i have to rethink it
ugexe a deb package is.. dun dun dun... a distribution
moritz thinks it makes quite some sense to expose Distribution as a first-class citizen
kalkin- yes it hit me too :)
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
moritz and uninstall one etc.
kalkin- the META6.json depend field, does it list Distributions or Modules? 22:26
moritz distributions, I hope
ugexe it can be either. s22 says its whatever you `use`
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
22:27 newbie1 left
RabidGravy like e.g. RSS 22:28
22:28 newbie1 joined
RabidGravy or (something I'm thinking about at the moment,) AMQP 22:28
kalkin- ugexe: so i can say in code: use My-Distri:ver<v0.23>::My::Module:ver<v23>? (or similar) 22:29
ugexe no
you're not misunderstanding - thats just the way it is
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
kalkin- So not distributions?
RabidGravy I guess though that there is scope in the CUR piece to make one for yourself that did that if you wanted it
ugexe same if it only handled distribution in depends
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
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?
ugexe Zef::Distribution.contains-spec("Foo::Bar:ver<...>") or some such
RabidGravy yep
ugexe the reason CURs dont do that is (i think) so it can try to speed up the lookup of modules 22:36
RabidGravy but if one felt strongly enough about it it is entirely possible to add one's own CUR 22:38
kalkin- CUR? 22:39
RabidGravy CompUnit::Repository
kalkin- ahh thanks
just to sum up the best practice would be specifying the module not distribution in depends? 22:41
if so i can add it to the Module docs page, so people start doing that
RabidGravy notviki, I think you can turn off the KeepAlive at the command line
notviki off? 22:42
RabidGravy kalkin-, yes
22:43 jraglin joined
RabidGravy off yes, it stops it from checking whether it is doing anything 22:43
or something
22:43 araujo joined, araujo left, araujo joined
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
notviki RabidGravy++ thanks 22:44
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
s/least/list
ugexe and for things like orphaned packages it would definitely be easier to search depends for distributions
22:46 rafaschp left
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 :)
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
kalkin-, it's macine readable and writable 22:49
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
that part is a SMOP
I have a script that generates new ones
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
your distribution depends^
BenGoldberg depends upon :)
22:52 cyphase left, cyphase joined
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
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?
(to prevent issues similar to HTTP::UserAgent)
RabidGravy I think zef does that 22:54
kalkin- AFAIK every current Distribution has an auth name (fallback to author)? 22:55
RabidGravy: Generate META6.json depends fields?
ugexe the fallback should not happen
it only does because of backwards compatibility
kalkin- ugexe: i thought about the orphaned distributions
RabidGravy the depends entries should be anything that is valid in a "use"
kalkin- (because you talked about them prior)
22:55 cdg joined
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
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
ugexe require $xxx;
kalkin- RabidGravy: no, I just thought I oversaw something in zef 22:58
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 22:59
23:00 Gasher joined
RabidGravy I don't think I've used it 23:00
ugexe I'm not sure i would recommend it 23:01
raiph .tell thundergnat Re: "simple way to unpack a list of lists of lists" Maybe as at stackoverflow.com/a/37230217/1077672? 23:02
yoleaux raiph: I'll pass your message to thundergnat.
23:03 dugword joined
ugexe it has things like 'PERL6LIB=$PWD/blib/lib' which show its extremely outdated 23:03
and its not going to handle things like `"provides" : { "Foo" : "lib/Foo.pm6", "Foo::Bar" : "lib/Foo.pm6" }` 23:04
RabidGravy eugh 23:06
sjn kinda agrees that "distribution" is a bad name for what it means in the Perl community 23:07
I wonder if it would be meaningful to start using another name for it 23:08
e.g. "collection"
notviki heh
ugexe its a bunch of modules that are logically grouped in the way that you would normally distribute
kalkin- package
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 dugword left
kalkin- s/know/now 23:09
23:09 dugword joined
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
ugexe it could lose build as well 23:10
23:10 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
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
ugexe: partly. build regenerates META6.json and the README.md
aehm not 21, 23 23:12
ugexe package is already defined github.com/perl6/specs/blob/master...ckages.pod
kalkin-: yeah but I think i would add it to the config.json so its configurable and defaults to something lower 23:13
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
m: $*SCHEDULER.max 23:15
camelia ( no output )
kalkin- m: $*SCHEDULER.max.say
camelia rakudo-moar f6303d: OUTPUT«ThreadPoolScheduler.new(initial_threads => 0, max_threads => 16, uncaught_handler => Callable)␤»
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 newbie1 left
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
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
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
if your test doesn't run correctly under the -j switch to prove, YHL
&
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
ugexe you are more optimistic than I am
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
23:21 Ben_Goldberg joined
kalkin- once it's documented beginners will learn the RIGHT WAY™ 23:22
23:22 BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
RabidGravy well I have made 57 releases so I kind of know 23:22
and every once in a while some kind soul will tell me I'm crap so I change things 23:23
23:24 wamba left
ugexe kalkin-: github.com/skaji/mi6/blob/master/l...i6.pm6#L93 (this is the build i was talking about) 23:26
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
ugexe without zef its `perl6 -I. -Ilib -e 'use Build; Build.new.build($*CWD)'
oh
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
(so i could completely rip out mi6 build)
ugexe github.com/niner/Inline-Perl5/comm...b3ab3c7d11 # this shows turning a panda build into a dep free build
RabidGravy yeah, I remember now 23:30
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?//
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, labster left
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
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
RabidGravy there are more than one party implied by "you" in that 23:35
23:35 shayan_ joined
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
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"
kalkin- looking @npm scripts. something like that seems nice 23:36
RabidGravy anyway bed time for me 23:37
toodles 23:38
23:38 shayan_ left
ugexe kalkin-: there were hooks for each phase (like build, test, install) as well as before and after 23:38
23:38 shayan_ joined
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:41
23:42 RabidGravy left 23:44 Geth joined
Geth th-test/moew-branch: 9c4f259b33 | (Zoffix Znet)++ | README.md
meow1-0.835990422440354

meow3
23:44
notviki :D
23:44 Geth is now known as Guest40946 23:45 Guest40946 left
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:47
23:48 DarthGandalf left
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
what if some packages will start waiting for each other to be installed?
ugexe then they were written poorly 23:50
kalkin- I would keep it to the specified dependencies in the phase (build/test)
ugexe: ok, may be I'm seeing only part of a picture. why would you want to use such feature? 23:51
23:52 cdg_ joined
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:52
kalkin- ugexe: in such case this should be somehow encoded in META6.json in the build-depends field 23:53
so once in BUILD phase you check if Foo::Optional is available if not, you don't build the Optional part
ugexe there is nothing for optional depends. and in some cases you wont know what the optional depends is
kalkin- ugexe: what's wrong with extending META6 with that? 23:54
23:54 cdg left
ugexe because you cant extend it for dependencies you dont know until run time 23:54
require $*ENV<FooApp_Tester>; 23:55
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:56
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
i just showed you an example
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
(if you specify the optional deps) 23:59
ugexe you're underestimating the build process
you cant specific the optional deps in every situation - there is no way around this
23:59 rindolf left
kalkin- because in best case my build is happening in an isolated environment with only things it's specified in META6.json 23:59