»ö« 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«TrueTrueFalseFalse» | ||
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«TrueTrueTrueFalse» | ||
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 callat <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 handPerl6isnicetoprogramin» | ||
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 < operatorat <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 |