🦋 Welcome to Raku! raku.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: colabti.org/irclogger/irclogger_log/raku
Set by ChanServ on 14 October 2019.
tbrowder ff, sorry 00:00
00:03 patrickz joined 00:06 patrickb left 00:24 Kaiepi left 00:25 Kaiepi joined, Manifest0 left 00:27 Manifest0 joined, knoop_ joined 00:36 Manifest0 left 00:37 Manifest0 joined 00:40 patrickz left, pmurias left 01:01 ZzZombo joined 01:02 Xliff joined 01:03 cpan-raku left
Xliff Still waiting for someone to help me spec out a decent web-app framework for Perl6 01:05
Xliff curses AlexDaniel...
01:11 knoop_ left 01:12 cpan-raku joined, cpan-raku left, cpan-raku joined 01:13 wildtrees left 01:14 Xliff left 02:21 josef_October joined 02:23 lucasb left
josef_October does any one uses debian unstable i cannot install there any single raku module - i get an build error 02:41
these are the errors: 02:43
[FastCGI::NativeCall] /usr/bin/ld: cannot find -lffi
[FastCGI::NativeCall] /usr/bin/ld: cannot find -ltommath
[FastCGI::NativeCall] /usr/bin/ld: cannot find -latomic_ops
[FastCGI::NativeCall] /usr/bin/ld: cannot find -luv
[FastCGI::NativeCall] collect2: error: ld returned 1 exit status
02:43 llfourn joined
josef_October [FastCGI::NativeCall] make: *** [Makefile:2: all] Error 1 02:43
[FastCGI::NativeCall] The spawned command 'make' exited unsuccessfully (exit code: 2)
[FastCGI::NativeCall] in method build at /root/.zef/store/FastCGI-NativeCall-0.0.6.tar.gz/FastCGI-NativeCall-0.0.6/Build.pm line 18
[FastCGI::NativeCall] in block <unit> at -e line 1
===> Building [FAIL]: FastCGI::NativeCall:ver<0.0.6>:auth<github:carbin>:api<1.0>
03:13 Xliff joined
Xliff Can NativeCall handle passing a struct by value? 03:14
03:15 RobRaku joined
Xliff m: my α = 2; say α; 03:37
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/u1LSkAYWWk
Malformed my (did you mean to declare a sigilless \α or $α?)
at /tmp/u1LSkAYWWk:1
------> 03my α08⏏04 = 2; say α;
Xliff m: my \α say α;
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/pjbZ9eVBdh
Term definition requires an initializer
at /tmp/pjbZ9eVBdh:1
------> 03my \α08⏏04 say α;
Xliff m: my \α = 2; say α;
evalable6 2
03:39 kshannon joined
kshannon I'm having some trouble getting a react block to stop after a listening IO::Socket::Async has been shutdown. 03:40
react { my $tap = do whenever IO::Socket::Async.listen("localhost", 3078) -> $conn { $tap.close; $conn.close; done }; }
This hangs forever. 03:41
And I mean after I connect to the port from elsewhere. It properly shuts down the port and doesn't accept more connections but the react block never dies. 03:42
03:48 rindolf joined 03:54 RobRaku left, RobRaku joined 03:55 kshannon left, kshannon joined
Xliff kshannon: Sorry. I can't get it to close, either. Caveat: react/whenever is NOT my thing. 03:58
This immediately closes: 04:00
my $tap; my $l = IO::Socket::Async.listen("localhost", 3078); my $lt; react { whenever $tap -> $conn { $lt = $l.tap(-> { }, done => { $lt.close }); QUIT { default { done; }; }; }; };'
kshannon Umm. Where are you actually tapping the Async.listen? 04:02
You haven't assigned to $tap so `whenever $tap` === `whenever Nil` 04:04
Xliff Hrm. Good point. 04:10
Like I said... not my thing.
Huh. 04:11
my $l = IO::Socket::Async.listen("localhost", 3078); my $lt; react { whenever $l -> $conn { $lt = $l.tap(-> { }, done => { $lt.close }); QUIT { default { done; }; }; }; };
This closes after the connect, but with an unhandled exception, which is never good. 04:12
"Unhandled exception in code scheduled on thread 4
address already in use"
kshannon Yes, you've tapped it twice. `whenever $l -> ...` and `$l.tap(...)` 04:13
The `whenever` starts listening and then on the first connection the `$l.tap` attempts to start listening again which it can't because the first listening socket is still open. 04:14
Xliff Yeah. I'll have to seriously research it when I need it for something. :/ 04:15
Sorry I wasn't much help. 04:16
kshannon ¯\_(ツ)_/¯
Thanks for looking at it anyway
It doesn't need the Async IO. I can reproduce it with a Supply.from-list(1..*) 04:32
AlexDaniel kshannon: that's so weird 04:33
`done` doesn't “done” it
kshannon So, it looks like this has never worked.
react { my $tap = do whenever Supply.from-list(1..*) -> $a { $tap.close; done } } 04:34
This hangs.
But this: 04:35
react { my $tap = do whenever Supply.from-list(1..10) -> $a { $tap.close; say $a; done } }
evalable6 1
04:35 llfourn left
AlexDaniel kshannon: by any chance are looking for the `supply { }` block? 04:35
kshannon No. I do mean react. 04:36
My real issue is working out how to nicely shutdown a server that's using IO::Socket::Async.listen 04:38
I have my react block which taps the IO::Socket::Async.listen and then responds to requests. 04:39
According to the IO::Socket::Async docs you can close the socket by calling .close on the tap.
That works, but the react block just hangs. 04:40
Xliff Looks like it won't close without ANY attempt at IO.
kshannon That's because in my original I am closing the tap inside the accept closure. 04:44
react { my $tap = do whenever IO::Socket::Async.listen("localhost", 3078) -> $c { $c.close }; whenever Promise.in(3) -> $p { $tap.close; } }
That closes the listening socket after 3 seconds
But react still hangs forever. 04:45
cpan-raku New module released to CPAN! PDF::Font::Loader (0.2.7) by 03WARRINGD 04:46
New module released to CPAN! HTML::Canvas (0.0.8) by 03WARRINGD
kshannon I think this might be another form of github.com/rakudo/rakudo/issues/2609 04:55
04:58 llfourn joined 05:05 mid_home left
ZzZombo How do I disable autoclosing brackets in Comma? 05:32
05:40 ZzZombo_ joined 05:42 ZzZombo__ joined, ZzZombo__ left
Xliff m: use NativeCall; class A is repr<CStruct> { has gdouble $.array[2][2] is CArray; }; 05:43
evalable6 (exit code 1) 04===SORRY!04===
Xliff, Full output: gist.github.com/d68db114787f62b4a3...e3e9728a11
Xliff m: use NativeCall; class A is repr<CStruct> { has gdouble $.array[4] is CArray; };
05:43 ZzZombo left
evalable6 (exit code 1) 04===SORRY!04===
Xliff, Full output: gist.github.com/452ffc31a0bed61ae1...b03cd2f7f5
Xliff m: use NativeCall; class A is repr<CStruct> { has num64 $.array[2][2] is CArray; };
evalable6 (exit code 1) 04===SORRY!04===
Xliff, Full output: gist.github.com/c7eb3e09ea808c0929...ef53beecc2
05:43 ZzZombo__ joined
Xliff m: use NativeCall; class A is repr<CStruct> { has num64 $.array[4] is CArray; }; 05:43
evalable6 (exit code 1) 04===SORRY!04=== Er…
Xliff, Full output: gist.github.com/90c4fcf1a2c9157962...65b96a1a81
Xliff m: use NativeCall; class A is repr<CStruct> { has num64 @.array[2][2] is CArray; }; 05:44
evalable6 (exit code 1) 04===SORRY!04=== Er…
Xliff, Full output: gist.github.com/e971aa9adbec4052ef...59ba3541f2
Xliff m: use NativeCall; class A is repr<CStruct> { has num64 @.array[4] is CArray; };
05:45 ZzZombo_ left 06:06 Xliff_ joined 06:08 Xliff left 06:09 ZzZombo__ is now known as ZzZombo 06:13 llfourn left 06:17 jmerelo joined
tyil Xliff_: I'm not doing much web app development myself these days, but I can try to help you think about design aspects for a framework if you want 06:26
Xliff_: want my email address so you can more easily send bigger messages?
06:28 mid_laptop joined 06:30 sauvin joined
jmerelo .seen Kaiepi 06:37
tellable6 jmerelo, I saw Kaiepi 2019-12-11T15:24:29Z in #raku: <Kaiepi> .
jmerelo .seen nige
tellable6 jmerelo, I saw nige 2019-11-26T07:16:25Z in #raku: <nige_> (another good way to attract users)
kshannon My head hurts. I've been reading the source for how react { } works and I feel like I'm playing ADVENT. "YOU ARE IN A MAZE OF TWISTY LITTLE PASSAGES, ALL ALIKE" 06:40
06:46 ufobat joined
jmerelo Do you want to make your own bots for this IRC channel? Check out tyil's article today in the advent calendar rakuadventcalendar.wordpress.com/2...t-in-raku/ 06:52
06:59 RobRaku left 07:00 RobRaku joined
jmerelo We are already in Advent, but you can still write an article for the calendar. We'd have it as a backup or publish it in the last day github.com/Raku/advent/blob/master...9/schedule Please add yourself there. 07:01
07:21 kshannon left
Xliff_ tyil: One sec. 07:21
07:32 jmerelo left 07:50 wamba joined
Kaiepi .tell jmerelo, did you get my messages yesterday? 07:58
tellable6 Kaiepi, I'll pass your message to jmerelo
08:01 kensanata joined 08:08 Kaiepi left 08:09 leont joined 08:12 mid_laptop left 08:16 Kaiepi joined 08:20 patrickb joined 08:29 abraxxa left 08:30 abraxxa joined 08:43 leont left 09:24 ufobat_ joined 09:27 ufobat left 09:28 daxim left 09:33 daxim joined 09:41 pmurias joined
pmurias vrurg: I'm not aware of any, but I only work on the jvm backend from time to time 09:43
vrurg: but if you have anything golfed I could try fixing it
09:48 sena_kun joined
sarna does CPAN only host Perl modules? or Raku modules as well 10:13
moritz raku / perl 6 modules as well 10:22
sarna cool! I have to make an account then :D 10:23
10:54 sena_kun left 10:56 RobRaku left, wamba left 10:57 sauvin left 10:59 sauvin joined 11:08 sena_kun joined 11:12 pmurias left 11:18 joule joined 11:45 mid_laptop joined
sena_kun releasable6: status 11:52
releasable6 sena_kun, Next release in ≈9 days and ≈7 hours. There are no known blockers. 0 out of 258 commits logged
sena_kun, Details: gist.github.com/1ea34c99a7e7f9367f...c53f72b517
12:02 wamba joined 12:19 chloekek joined, pmurias joined 12:29 mid_laptop left 12:31 bbkr joined 12:36 pmurias left 12:37 RobRaku joined 12:38 pmurias joined
bbkr @zostay: I must say that Async advent calendar rocks! All those patterns like proper $*IN handling in reacts, CAS operations, Supply taps pushback for emits, etc. are worth bookmarking forever. 12:44
12:48 wamba left 12:54 sena_kun left 13:09 sena_kun joined 13:15 joule left
sarna bbkr: which day do you have in mind? 13:23
oh, they have their own calendar :D
bbkr yes 13:24
sarna their site is really slow for me though :(
takes almost 21 seconds to load 13:25
bbkr the main calendar page zostay.com ? loaded for me <1s 13:26
sarna oh, it's fast for me now too 13:27
sarna shrugs
13:32 RobRaku left
ufobat_ jnthn, a while ago i reported that the comma-ide plugin doesn't work well with the current/latest version of intellij idea, is this going to be fixed soon? 13:34
13:34 ufobat_ is now known as ufobat 13:47 pmurias left 14:02 wamba joined, pmurias joined 14:06 lucasb joined
AlexDaniel perlbot: rakueval say 42 14:11
lizmat: ↑
rakueval: say 42
okay that doesn't work
AlexDaniel shrugs
perlbot: rkeval say 42
perlbot AlexDaniel: 42␤
AlexDaniel ah it does!
zostay bbkr: thx... my cluster has a node down this morning, so it's doing the best it can... 14:17
sarna it loads fast now :D 14:18
zostay now, yes... though until the node I terminated could reprovision, it would have been slow every 15 minutes for a minute or two as the single overloaded server did extra work 14:28
sarna zostay: I see. anyway, amazing posts - I just read a couple and I've learned so much already :) 14:31
zostay I'm glad they're helpful. I was inspired by one of jnthn's talks on the subject to put something out there that would expand the topics he covers in his slides. 14:40
14:54 abraxxa left, sena_kun left, abraxxa joined
zostay oh, look, reddit finally let me post today's entry... yesterday i was getting the nebulous "please fix the above requirements" message with no requirements 14:55
15:08 sena_kun joined, Dave48 joined
Geth ecosystem: 02f9c66b83 | (Marcel Timmerman)++ (committed using GitHub Web editor) | META.list
Removed modules of MARTIMM

Removed my module references because they are also stored on CPAN
15:11 Dave48 left 15:15 nine left 15:16 nine joined 15:19 camelia joined 15:30 libertas left, Guest90798 left 15:33 libertas joined
moritz man, I just read the first line, and thought somebody rage-quitted raku 15:33
then I read the second line, and all good :D
AlexDaniel moritz: even that would've been better than just deleting projects on github
which someone did in the past :S
moritz I know 15:34
AlexDaniel as long as they give us a chance to adopt their modules so that anything that depends on them keeps working, I don't mind ragequitting :)
chloekek Perhaps the packaging solution needs to be resilient by not depending on resources that can disappear. 15:35
AlexDaniel chloekek: that's what CPAN is, yes 15:36
chloekek Amazing! Mission complete!
AlexDaniel well, not exactly
I guess we should really keep proper backups of all github/gitlab modules too 15:37
I guess my biggest issue with CPAN is that people don't use it. Even those who use it, don't
jnthn AlexDaniel: What does the last bit mean? :) 15:38
"don't use it for all of their modules"?
AlexDaniel countless times I've stumbled upon issues in modules that were already fixed on master, like months ago
jnthn Ah, that
AlexDaniel in some cases they even have tags and everything
but no new release on CPAN 15:39
chloekek My biggest issue with GitHub is that you have no idea what you will get unless you depend on a specific commit hash, since refs are mutable. This is a security hazard unless you check hashes locally with a lock file.
AlexDaniel chloekek: I'm not sure I understand, does CPAN solve that somehow? 15:42
chloekek AFAIK CPAN prohibits changing the tarball of a specific version. 15:43
So as long as you trust CPAN, you good (but you shouldn’t; checking hashes locally is safe even if CPAN gets compromised).
jnthn ufobat: Not in this month's release, at least; there's just too many changes. :( 15:44
AlexDaniel chloekek: we should be able to check tag signature if there's one…
jnthn ufobat: Should hopefully make it by the January one. 15:45
AlexDaniel but then what do we compare it with
chloekek I have a script somewhere that computes hashes of all of the packages on CPAN and Git{Hub,Lab} but it has @issues. Especially since there’s no way to check out specific versions of pkgs that are on Git{Hub,Lab}.
ufobat that would be awesome :-)
thanks jnthn
chloekek The output is a list of (tarball URL, hash) pairs. For CPAN it’s the usual tarball URL, for GitHub it’s github.com/<user>/<repo&g...gt;.tar.gz 15:46
But it’s always the latest master commit hash at the time of running the script. :(
Oh, apparently I never even got to implementing the GitHub part, I only have a file for CPAN archives: github.com/chloekek/cp6t/blob/mast...n.archives 15:50
cpan-raku New module released to CPAN! BSON ( by 03MARTIMM 15:52
chloekek AlexDaniel: I think that the whole packaging can be solved by adding just one thing: if people want to host a package with Git, then they *must* tag their releases. 15:58
If such a requirement is in place, then packages can be crawled by a bot, and archived indefinitely. 15:59
zostay i started using cpan better once i wrote tooling to automate away the painful parts... (except for updating the provides section of META, that part is still very painful)
chloekek And you can download specific versions from GitHub, instead of always master.
zostay i'd be happy with any ecosystem setup that included tooling to make it easy to do the right thing and automates away the painful parts of the release process... otherwise, we will just have the same mess in another place 16:00
jnthn Yeah, maintaining the provides section is something I'm glad to no longer have to do manually... :) 16:02
I also have some scripts for doing various release tasks; should get the upload incorporated too. :)
zostay how do you avoid maintaining provides? I would love to know
jnthn zostay: I use Comma, which does it automatically 16:03
zostay I was afraid you'd say that.
jnthn :)
zostay is there any chance the code that does that could be released as a separate module?
Grinnz just wait until some crazy person makes a dzil for raku... :) 16:04
jnthn zostay: Given the code is written in Java and relies on file system event APIs from the IntelliJ platform, not really. :)
But I think one could write something in Raku using file watching
Probably in not very much code at all
zostay I'd just be happy for the ability to find the names of packages from the compunits or something similar. 16:05
chloekek I happen to have code that indexes packages into a SQLite database and associates compunits with distributions :') but it’s old and unfinished. 16:06
zostay when i've gone to write it, i discovered that i have to parse every weird kind of package declaration and try to do the right thing... i haven't found a method that would just let me do some reflection on the code to discover the packages in the files 16:07
16:07 kensanata left, pmurias left
zostay i've started looking at goff's parsing stuff a few times, but haven't made the time to really dig in to understand it enough to use it 16:08
chloekek p6: say $?DISTRIBUTION
camelia Nil
zostay i'm too busy trying to figure out how to get raku to run well on pi at the moment... i need to get myself a pi 4 so i can stop screwing around with cross-compiling on qemu, which is super slow 16:11
compiling on a pi 3 is doable, but painful
compiling on a pi 0 is possible, but excrutiating :-p
patrickb zostay: I recently learned that moarvm bytecode files are platform independent. 16:12
Something along these lines should work: Compile rakudo and abort when it starts compiling the setting. Copy the setting over from some other install, adjust timestamps and restart the build. 16:14
16:16 patrickb left
zostay actually, that's not a terrible idea, though i wouldn't probably mess that far up the build 16:18
i could build rakudo itself, which takes an hour or so as the base container, then build a standard container with the modules i want and copy them into the base container for rpi 16:19
once a working rakudo is built, i don't need to build it again very often 16:20
ufobat what would you suggest to install raku, rakudobrew or install the sources from rakudo.org (manually)? 16:29
zostay i don't tend to use rakudobrew anymore, i usually download a release from git and build (or on my mac, just use brew) 16:31
AlexDaniel zostay: just install it from the repo? 16:36
16:36 anosajib joined
anosajib Hi 16:36
AlexDaniel zostay: you should be able to get 2019.07.1 from debian unstable 16:37
anosajib: hello! 16:38
zostay at the moment i'm working with a variation of rob's Dockerfile, which grabs the latest release of rakudo-star, so i'm still working with 2019.03
anosajib how are you ? Alex.
AlexDaniel anosajib: sleepy and unproductive :( 16:40
16:43 ZzZombo_ joined, Xliff_ left 16:44 ZzZombo left, ZzZombo_ is now known as ZzZombo 16:47 testtestest joined 16:48 robertle joined 16:49 anosajib left 16:51 chloekek left 16:52 againano joined 16:53 sena_kun left 16:55 againano left 16:59 jmerelo joined, ZzZombo left 17:00 ZzZombo joined 17:03 testtestest left
nine zostay: > perl6 -Ilib -e '$*REPO.load("Inline/Language/ObjectKeeper.pm6".IO).handle.globalish-package.keys.say' 17:04
17:08 sena_kun joined
zostay ugexe suggested this, which I think I will start from: perl6 -e 'my $repo = CompUnit::Repository::FileSystem.new(prefix => ~$*CWD.child("lib")); say $repo.distribution.meta<provides> 17:12
17:13 mid_home joined
nine zostay: yeah, that's good, too. Depends on whether you stick to the 1 class per file rule and have your names always match the file names 17:15
zostay i definitely have multiple packages per file in many of my modules 17:17
17:29 chloekek joined 17:35 cpan-raku left 17:36 cpan-raku joined, cpan-raku left, cpan-raku joined
chloekek Building Rakudo 2019.11 with Nix, exciting. Hope it works out of the box. :þ 17:43
Yep it works \o/ 17:44
17:48 leont joined 18:05 jmerelo left 18:20 vividsnow left, vividsnow joined 18:22 nirmal joined
nirmal hey 18:22
sena_kun nirmal: o/ 18:23
nirmal how you ?
sena_kun writing some code. :] 18:24
nirmal hmmm
you are from ?
18:26 nirmal left 18:28 vividsnow left, vividsnow joined 18:42 patrickb joined 18:49 wamba left 18:54 sena_kun left 18:56 veesh_ joined 18:58 veesh left, veesh_ is now known as veesh
chloekek What is the difference between <foo>+ and <foo> + in a rule? 19:01
vrurg chloekek: I'm not 100% sure, but in second rule + is being applied to an empty atom.
moritz no 19:07
the difference is between <foo>+ and [<foo> <.ws>]+ 19:08
a rule automatically inserts a <.ws> for spaces (except at the start of the rule, iirc)
19:09 sena_kun joined
vrurg I didn't use rules for too long, as it seems... 19:09
chloekek I find grammars so difficult to work with. 19:10
vrurg chloekek: Depends on what you compare with. Of lex/flex/yacc/bison, and perl5, and raku – Raku's are by far the best. 19:12
leont tends to prefer token over rule for exactly that sort of reason
chloekek I find ocamllex+menhir very easy to use. 19:13
I’ll probably resort to using regexes for matching terminals and then write a recursive-descend parser by hand using subroutines. 19:14
moritz yes, token holds the least surprises 19:15
m: my token a { a }; say 'a a' ~~ rule { <&a> +} 19:16
camelia 「a a」
moritz m: my token a { a }; say 'a a' ~~ rule { <&a>+}
camelia 「a」
19:24 sauvin left 19:31 wamba joined 20:08 finanalyst joined 20:23 pmurias joined 20:37 vividsnow left 20:39 vividsnow joined 20:42 robertle left 20:55 sena_kun left 21:08 rindolf left, sena_kun joined, chloekek left 21:41 maggotbrain left 21:47 kensanata joined 21:48 pmurias left, sena_kun left 21:52 maggotbrain joined 21:54 pmurias joined 22:17 kensanata left 22:20 finanalyst left
josef_October could some one please help me to get running raku and a web server like apache / nginx / lighthttpd 22:56
is there somewhere a simple tutorial out there please?
El_Che josef_October: you want to run raku webapps 22:58
tellable6 hey El_Che, you have a message: gist.github.com/2cb75909f4b13aa174...6485989b4b
josef_October El_Che: please could you tell me what is webapps? i am new to programing and even web server configurations 23:04
and a search engine did not give me a hint :/ 23:06
veesh uh, what's your background, and what are you trying to do? 23:07
23:07 vividsnow left, vividsnow joined 23:08 vrurg left, vrurg joined
El_Che josef_October: well, you need to get the basics first then. Programming and sysadmin skills take time to acquire. Do you have access to books? 23:09
23:09 skyl4rk_ joined
El_Che josef_October: I would suggest this book: shop.oreilly.com/product/0636920065883.do 23:09
iirc it's freely vailable as well
23:10 silug left, skyl4rk left, skyl4rk_ is now known as skyl4rk
El_Che josef_October: greenteapress.com/thinkperl6/thinkperl6.pdf 23:10
josef_October is there explained how to use raku for web programing? 23:11
thanks so much for the link
El_Che josef_October: use it to get into programming, after that have a look at Cro. Plenty of howtos about setting up webservers after that
josef_October: it learns you to program and raku at the same time
josef_October: some basic principles
first learn to program, then web or whatever special need 23:12
23:13 pmurias left
josef_October well an tutorial how to get up e.g. apache2 and raku working would help me a lot too because otherwise i have no testing environment :( and i would love to use raku for web progrmaing 23:14
23:14 silug joined
josef_October El_Che 23:14
but i was not lucky with searching for such a tutorial - could perl5 / apache2 tutorials help me there? 23:15
El_Che josef_October: cro has it own developement webserver 23:16
no need for apache or a reverse proxy at that stage
Grinnz you also would not involve apache in development of webservices in perl these days either 23:18
so any such search results would surely point you at outdated mod_perl garbage
which is completely inapplicable to raku
josef_October ok thanks you for your help El_Che and Grinnz 23:23
El_Che no problem, have fun learning 23:24
josef_October thanks 23:29
23:34 pmurias joined 23:43 wamba left