🦋 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.
00:18 wamba joined
discord6 <theangryepicbanana> wait my module wasn't in the weekly newsletter 00:24
<theangryepicbanana> I added it a few days ago
00:27 wamba left 00:32 hungryd11 joined 00:35 hungrydonkey left 00:37 gdonald joined
discord6 <theangryepicbanana> ? 00:41
<theangryepicbanana> or are a limited amount of modules that are listed in the newsletter each week? 00:42
00:44 aborazmeh joined, aborazmeh left, aborazmeh joined 00:46 sena_kun left 00:48 lucasb left 00:59 hungryd11 left 01:01 veesh left, sena_kun joined 01:02 hungrydonkey joined 01:14 hungrydonkey left, hungrydonkey joined 01:17 leont left 01:23 hungrydonkey left 01:24 aborazmeh left 01:26 ToddAndMargo joined
ToddAndMargo is there a way to get `my uint8 $u = 0x4F; printf "\$u = <%#b>\n", $u;` to print$u = <0b0100_1111>? I am trying to put an underscore every four bits 01:27
01:38 Sgeo left, Tirifto left 01:39 Sgeo joined 02:07 hungrydonkey joined 02:12 molaf left 02:25 molaf joined 02:46 sena_kun left 02:50 ToddAndMargo left, Maylay joined 03:01 sena_kun joined 03:04 squashable6 left 03:06 squashable6 joined 03:12 cooper joined
guifa theangryepicbanana: it needs to be in CPAN, if you just add it to the ecosystem it won’t get a notice. That’s why none of mine have been mentioned in a long time haha. I need to start posting to CPAN 03:14
Grinnz hope you all can learn from the slow wrecking train that was the cpan registered modulelist :) 03:16
www.cpan.org/modules/00modlist.long.html - abandoned as volunteer curation at scale is a fool's errand 03:17
Grinnz notes taht should be updated to not reference cpan search engines that don't exist anymore! 03:23
once i remember what github repo that's sourced from... 03:24
guifa The idea of a curated module list isn’t bad in and of itself. But it really requires upkeep 03:28
Grinnz it works better as a project in itself, rather than an official construct of the repository, IME 03:30
in the end, you're getting *someone's* opinion
guifa Absolutely agree. And it helps to explain to a random person why JSON::Tiny and JSON::Fast both exist and which one they should use 03:31
Grinnz and that someone has to be invested in their opinion over a lot of things :)
guifa (those two, for instance, share an API so it can be pointed out they’re a drop in replacement for each other)
Maybe I’ll take it up as a post-dissertation post-CLDR project lol 03:37
04:12 evalable6 left, linkable6 left 04:13 linkable6 joined 04:15 evalable6 joined 04:19 hacktortu left 04:20 cpan-raku left 04:21 hacktortu joined 04:22 cpan-raku joined, cpan-raku left, cpan-raku joined 04:38 Benett joined 04:41 NODE joined 04:47 sena_kun left 04:49 hungryd7 joined 04:50 hungrydonkey left, Benett left 04:51 NODE left 04:53 Benett joined 04:54 hungryd7 left, hungrydonkey joined 04:56 hungryd80 joined 04:57 hungrydonkey left 05:01 sena_kun joined 05:06 molaf left 05:07 Benett left 05:08 Benett joined 05:11 NODE joined 05:13 Actualeyes left 05:14 Black joined, Actualeyes joined 05:15 Benett left 05:16 Black is now known as Benett 05:17 NODE left 05:21 NODE joined 05:22 NODE left, Benett left 05:24 Benett joined 05:25 mowcat left 05:28 Itaipu joined 05:31 NODE joined 05:39 ensamvarg joined 05:45 NODE left, NODE joined 05:48 Guest91 joined 05:52 Guest91 left 05:53 ensamvarg left 06:09 jmerelo joined 06:15 AlexDaniel joined, AlexDaniel left, AlexDaniel joined 06:17 Doc_Holliwould joined, DoverMo joined 06:20 xinming_ joined 06:24 xinming left 06:26 stoned75 left, rindolf joined 06:35 ensamvarg joined 06:45 sena_kun left 06:46 AlexDaniel left, sno left 07:00 sena_kun joined, kensanata joined 07:24 jmerelo left 07:25 domidumont joined 07:39 Doc_Holliwould left 07:43 domidumont left 07:45 domidumont joined 07:49 sauvin_ joined 08:03 Sgeo_ joined
cpan-raku New module released to CPAN! Term::Choose (1.6.2) by 03KUERBIS 08:05
08:07 Sgeo left
cpan-raku New module released to CPAN! Hash::Merge (1.0.1) by 03TYIL 08:21
08:23 sauvin_ is now known as Sauvin 08:24 DoverMo left 08:31 Doc_Holliwood joined 08:32 dakkar joined 08:46 sena_kun left 08:47 wamba joined 08:53 zakharyas joined 08:59 sena_kun joined 09:04 domidumont1 joined 09:05 domidumont left 09:13 Doc_Holliwood left 09:18 Doc_Holliwood joined, AlexDaniel joined 09:19 AlexDaniel left, AlexDaniel joined, e1z0 joined, e1z0 left, e1z0 joined
e1z0 why this all thing named Raku, why not simply perl6? 09:20
09:24 wamba left 09:27 zakharyas left 09:29 zakharyas joined 09:37 [Sno] joined 09:38 pecastro joined
lizmat e1z0: because it is better that way 09:39
lizmat clickbaits rakudoweekly.blog/2020/02/03/2020-...eleasalot/ 09:41
tyil e1z0: things are generally given names so its easy to refer to them 09:51
e1z0 for me it's difficult to understand all these raku things, i've just tried to reach information about perl6 and now i'm totally confused 09:56
09:59 kensanata left 10:00 Doc_Holliwood left
tyil e1z0: one reason for the rename was to avoid confusion between perl 5 and 6, but search engine may take some time to learn of this new raku thing 10:00
El_Che e1z0: it's a sad side effect if you already had "perl 6" in your mind and have trouble with the renaming. The point is that *everyone else* outside the Perl cosystem was confused about the name, very often with negative consequences (like people moving of Perl 5 to an other language, because Perl 6 is already out but it's different) 10:01
10:03 natrys joined
e1z0 understand 10:04
10:07 kensanata joined 10:25 rindolf left
El_Che e1z0: so in short, in my eyes, it's a move in good faith by the perl 6 community to fix this for the perl (5) community while trying to be evaluated by it self and not by prenotions about Perl (5). It was a neverneding discussion that tooks years and lots of energy, so I don't think someone here want to reopen it :) 10:28
10:33 rindolf joined 10:47 sena_kun left 10:52 wamba joined 11:01 xinming_ left, xinming_ joined 11:02 sena_kun joined 11:09 abraxxa left 11:10 aborazmeh joined, aborazmeh left, aborazmeh joined 11:11 rindolf left, abraxxa joined
tyil rypervenche: did you find any more issues with r* 2020.01-rc1? 11:13
11:14 uzl[m] left, wamba left, kensanata left, AlexDaniel left, Sgeo_ left, NODE left, Benett left, Actualeyes left, Maylay left, dansolo42 left, committable6 left, shareable6 left, reportable6 left, bisectable6 left, statisfiable6 left, quotable6 left, unicodable6 left, coverable6 left, notable6 left, nativecallable6 left, tobs left, zakharyas left, evalable6 left, linkable6 left, cooper left, Celelibi left, mojca left, eater left, skaji_ left, domidumont1 left, squashable6 left, bloatable6 left, tellable6 left, sourceable6 left, benchable6 left, releasable6 left, greppable6 left, cpan-raku left
tyil bartolin: you told me JVM received a fix in github.com/rakudo/rakudo/commit/a08f043953, which was after the 2020.01 tag, were there any plans to make a 2020.01.1 tag to include the JVM fixes? 11:14
bad time to start a discussion it seems
I'll try again later :'D 11:15
11:17 cpan-raku joined, cpan-raku left, cpan-raku joined, Black_Ribbon left, zakharyas joined, evalable6 joined, linkable6 joined, albongo joined, [particle] joined, AlexDaniel` joined, laama joined, lbtjp joined, rba joined, discord6 joined, Altreus joined, eiro joined 11:18 uzl[m] joined, natrys left, hungryd80 left, aluaces left, benjif_ left, aeruder left, gugod left, El_Che left, nine left, jnthn left, wbn left, k-man left, jdv79 left, Mikey_ joined, domidumont1 joined, squashable6 joined, bloatable6 joined, tellable6 joined, sourceable6 joined, benchable6 joined, releasable6 joined, greppable6 joined, dpk joined, smash joined, mst_ joined, wbn joined, xxpor joined, NODE joined, wamba joined, kensanata joined, AlexDaniel joined, Sgeo_ joined, Benett joined, Actualeyes joined, Maylay joined, dansolo42 joined, committable6 joined, shareable6 joined, reportable6 joined, bisectable6 joined, statisfiable6 joined, quotable6 joined, unicodable6 joined, coverable6 joined, notable6 joined, nativecallable6 joined, tobs joined, eseyman joined, sarna joined, entonian joined, mst_ left, mst_ joined, epony joined, samebchase joined, silug joined, brass joined, natrys joined, gugod joined, cooper joined, Celelibi joined, esh joined, guifa joined, spycrab0 joined, Grinnz joined, zostay joined, holyghost joined, dylanwh joined, pnu__ joined, moritz joined, mojca joined, eater joined, skaji_ joined 11:19 daxim joined, NODE left 11:20 m0ltar joined, samcv joined, robinsmidsrod joined, samcv left, samcv joined 11:21 NODE joined, k-man joined, SCHAPiE joined, benaiah joined 11:22 aeruder joined, jhill joined, PavelB joined, protium joined, kawaii joined, PotatoGim joined 11:23 Grinnz left, nine joined, Woodi joined, tinita joined, NODE left, HarmtH joined, dustinm`_ joined, spycrab0 left 11:24 NODE joined, discord6 left, discord6 joined, cpan-raku left 11:25 cpan-raku joined, cpan-raku left, cpan-raku joined, Geth joined
lizmat weekly: github.com/ALANVF/Raku-LLVM 11:25
notable6 lizmat, Noted! (weekly)
11:25 jnthn joined, Grinnz joined, spycrab0 joined, BuildTheRobots joined 11:26 xinming_ left 11:27 hungrydonkey joined, xinming_ joined 11:28 El_Che joined, jdv79 joined, benjif_ joined, benjif_ is now known as benjif 11:30 ambs joined, wbn left 11:31 rindolf joined, wbn joined 11:32 natrys left, natrys joined 11:34 El_Che left 11:37 wamba left 11:41 El_Che joined 11:44 xinming_ left, xinming_ joined 11:47 Doc_Holliwood joined 11:49 abraxxa left, abraxxa joined
lizmat going to Amsterdam.PM& 11:52
12:03 NODE left, NODE joined 12:12 NODE left, NODE joined 12:14 Guest47772 joined, El_Che left 12:25 aborazmeh left 12:32 ufobat joined 12:34 xinming_ left, xinming_ joined 12:38 El_Che joined 12:45 zakharyas left 12:46 sena_kun left 12:53 aborazmeh joined, aborazmeh left, aborazmeh joined 12:55 Doc_Holliwood left 12:58 veesh joined 13:01 sena_kun joined 13:02 benjif left 13:03 wamba joined 13:05 aluaces joined 13:09 lucasb joined
rypervenche tyil: Yes. zef would not install. I can get you the actual error later today. For now...work stuff :/ 13:25
13:31 _jrjsmrtn joined 13:33 __jrjsmrtn__ left 13:39 benjif joined 13:44 kensanata left 13:45 NODE left 13:46 NODE joined 13:48 wamba left 13:50 benjif_ joined 13:53 benjif left 13:55 Doc_Holliwood joined 14:00 molaf joined 14:01 scovit joined 14:02 benjif joined, benjif_ left 14:04 NODE left 14:05 NODE joined 14:06 aborazmeh left
scovit Is the author of the new GSL modules here to chat? 14:11
14:11 abraxxa left 14:12 abraxxa joined 14:20 zakharyas joined 14:31 molaf left 14:38 Doc_Holliwood left 14:46 sena_kun left
rypervenche scovit: Not sure if he's here, but his email address is available on the module's page. You may also find your answer here. Did you have a question? 14:56
15:00 sena_kun joined 15:07 abraxxa left 15:08 abraxxa joined 15:18 colomon_ joined
scovit rypervenche: thank you for your reply 15:28
15:33 Doc_Holliwood joined, scovit left 15:35 kensanata joined
tyil damn, lizmat is going to be early 15:40
.tell lizmat I plan to leave at 5pm for amsterdam.pm 15:41
tellable6 tyil, I'll pass your message to lizmat
TreyHarris How can I make a grammar that expresses this: first line lists possible word tokens (delimited however) in any order; every line following is an ordered list (delimited however) of one or more of the first-line tokens? (You can assume <space> as the delimiter since that's probably easiest.)
Anything in lines 2..* that do not match either a first-line token or a delimiter invalidates the entire parse 15:42
15:42 dansolo42 left
TreyHarris I see how I can write a non-validating grammar and then check for invalid input post-parse very easily; just make lists of words, and any-compare the first to all-each the remaining 15:44
But I'd like to write a validating grammar
15:46 kensanata left 15:47 toothedsword joined 15:48 dansolo42 joined
jnthn m: grammar G { token TOP { <word-head>+ % " " \n {} <word-line($<word-head>)>+ }; token word-head { \w+ }; token word-line(@ok) { \w+ )> \n <?{ $/ eq any(@ok) }> } }; say G.parse("foo bar baz\nfoo\nbar\nwat\n") 15:50
camelia Nil
jnthn m: grammar G { token TOP { <word-head>+ % " " \n {} <word-line($<word-head>)>+ }; token word-head { \w+ }; token word-line(@ok) { \w+ )> \n <?{ $/ eq any(@ok) }> } }; say G.parse("foo bar baz\nfoo\nbar\nfoo\n")
camelia 「foo bar baz

word-head => 「foo」
word-head => 「bar」
word-head => 「baz」
word-line => 「foo」
word-line => 「bar」
word-line => 「foo」
jnthn TreyHarris: ^^
TreyHarris jnthn++ thank you, that's the first time I've really understood regex parameters, too! :-) 15:54
jnthn: I'm a bit confused by `\w+ )>`... is `)>` an operator i haven't seen before? It seems to be a dangling capture closing 16:04
oh, that just implies a `<(` at the beginning of the enclosing scope? 16:05
moritz TreyHarris: )> cuts off what goes into the match object
m: say 'ab' ~~ /a )> b/
camelia 「a」
moritz m: say 'abc' ~~ /a <( b )> c/
camelia 「b」
TreyHarris m: say 'ab' ~~ /(<a )> b/
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in metachar:sym<assert>; couldn't find final '>' (corresponding starter was at line 1)
at <tmp>:1
------> 3say 'ab' ~~ /(<a )> b7⏏5/
expecting any of:
TreyHarris m: say 'ab' ~~ /<(a )> b/ 16:06
camelia 「a」
TreyHarris so (once I got the order of the two characters right) it is equivalent?
moritz yes
<( sets $/.from and )> sets $/.to 16:07
and both default the start and end of the regex
m: say 'abc' ~~ /a )> b <( c/
camelia 「c」
moritz how to confuse everybody :-)
toothedsword How about the prospect of Raku? :) 16:08
TreyHarris phew; I was about to have a meltdown thinking about how we could ever get the Emacs mode to properly deal with that. If we can just say "don't use that form, used the form that balances brackets" it's still at least possible without Emacs having to actually communicate constantly with Raku to parse anything ;-)
moritz just don't consider <( or )> to be brakets 16:09
"just" :-)
TreyHarris Unfortunately, Emacs' (non-)greediness isn't as wieldy as PCRE; I don't think it would be at all easy to consider '<('..')>' as different from '<'{}'('..')'{}'>' 16:10
The hard part would be for it to not interpret `{ a ⎀)>` as a failure to close the opening curly at ⎀ 16:12
So any code past that point Emacs would just give up on
guifa Has anyone put together a lstlistings definition for Raku for LaTeX? 16:13
TreyHarris But so long as you do `{ <( a )> ...`, Emacs is already perfectly content with the parse
toothedsword vim is more reliable than emacs 16:15
TreyHarris toothedsword: no editor wars here, please
guifa TreyHarris: but but … Comma! 16:16
TreyHarris dealing with things like `$a < ( %b<f> > $c ?? $d !! $e )` is already something of a triumph 16:17
(does vim?)
16:19 Doc_Holliwood left
TreyHarris Hm, I probably should follow Raku/vim-raku just to try to ensure that we maintain enough feature parity that it doesn't appear the language prefers users of one editor over another. 16:19
I switched from ex to emacs, so whenever I use vi[m] and need to do anything besides movement, 'i', 'a', 'j', 'd', 'r' and 'x', I just hit colon and pretend I'm using ex :-) 16:22
16:33 foo333 joined 16:34 molaf joined 16:35 xinming_ left 16:36 cpan-raku left, cpan-raku joined, cpan-raku left, cpan-raku joined 16:37 xinming_ joined 16:39 ToddAmdMargo joined, ToddAmdMargo left
[Coke] is reminded to get the latest Comma update! 16:39
16:43 hungrydonkey left, hungrydonkey joined 16:45 hungrydonkey left 16:46 hungrydonkey joined 16:47 sena_kun left 16:55 Doc_Holliwood joined 16:57 entonian left 16:59 ensamvarg left 17:01 sena_kun joined
cpan-raku New module released to CPAN! Email::SendGrid (0.1) by 03JNTHN 17:14
17:22 lizmat joined 17:29 jmerelo joined
jmerelo GSoC application about to be submitted 17:30
You can still pitch new projects, but admin is pretty much done.
17:34 dakkar left 17:43 patrickb joined 17:51 wamba joined
patrickb jmerelo: Is now the time to change the layout of the ideas page back to the one of last year? 17:56
17:57 wildtrees joined
jmerelo patrickb: maybe? It's not been awarded yet. Results will be out on Feb 20 17:58
17:59 lizmat left, aborazmeh joined, aborazmeh left, aborazmeh joined
patrickb jmerelo: True, but I'd guess appeal to students of the ideas page is a criterion in the selection process. 17:59
17:59 lizmat joined 18:00 [Sno] left
jmerelo patrickb: please feel free to change what you think is necessary 18:01
patrickb: do you have the privs?
patrickb The missing encoding idea and the unsigned int idea have no mentor. Without a mentor the ideas will have to go before the student application period starts. So call for mentors!
jmerelo lizmat: somebody is calling your name here ^^^
patrickb: also yours 18:02
patrickb: please add yourself. And I mean PLEEEEEEASE.
Also lizmat
lizmat jmerelo: put me then as mentor for both 18:03
tellable6 2020-02-04T15:41:12Z #raku <tyil> lizmat I plan to leave at 5pm for amsterdam.pm
jmerelo lizmat: yay!
patrickb jmerelo: I think I don't have permissions
18:03 toothedsword left, hungrydonkey left
jmerelo patrickb: what's your nick? 18:04
patrickb patrickbkr
jmerelo Now you do
patrickb Thanks! 18:05
wildtrees is rakudobrew a good way to get an up to date raku with zef? 18:08
18:09 veesh left
jmerelo wildtrees: it's what I use 18:10
wildtrees ok :)
18:10 veesh joined 18:18 zakharyas left 18:28 molaf left 18:35 nt80 joined 18:40 mahmudov joined
wildtrees wow the ngp repo seems kinda big, 138megs? 18:43
lizmat 432M on mine :-) 18:44
18:46 sena_kun left 18:47 aluaces left 18:49 camelia left 18:50 aborazmeh left 18:53 toddr joined 18:57 stoned75 joined 18:59 abraxxa1 joined, uzl[m] left 19:00 abraxxa left, evalable6 left, linkable6 left, albongo left, Guest47772 left, [particle] left, AlexDaniel` left, laama left, lbtjp left, rba left, Altreus left, eiro left 19:01 uzl[m] joined 19:02 Guest47772 joined, evalable6 joined, linkable6 joined, albongo joined, [particle] joined, AlexDaniel` joined, laama joined, lbtjp joined, rba joined, Altreus joined, eiro joined 19:03 Geth left 19:04 oodani joined, chloekek joined 19:05 sena_kun joined
moritz wildtrees: the nqp repo contains binaries for bootstrapping, which makes it way bigger than actual code 19:07
19:09 chloekek left 19:10 chloekek joined
TreyHarris where are the SoC idea proposals published if anywhere? 19:20
sena_kun TreyHarris: github.com/perl-foundation-outreac...2020-ideas ? 19:23
19:23 AlexDaniel left
foo333 p6: say 42 19:24
evalable6 42
TreyHarris sena_kun: thanks
foo333 Hi all. When I try /msg camelia p6: ... I get no such nick/channel 19:25
jmerelo foo333: what about simply /msg evalable? 19:26
foo333: right, msg evalable6 does the trick
Although it says it's not answering private 19:27
You can join #whateverable and ask stuff there
foo333 doesn't work for me (neither evalable nor camelia) and they *did* work an hour ago
19:27 jmerelo left
TreyHarris lol, I didn't realize these were a mix of Perl and Raku issues initially and I was _very_ confused reading some of them. (The proposal text doesn't always mention Raku or Perl either) 19:28
19:29 foo333 left, foo333 joined
TreyHarris I dropped an issue in the repo github.com/perl-foundation-outreac...eas/issues asking someone to rectify this 19:29
19:30 foo333 left
TreyHarris (I'd just submit a PR but I don't know whether tagging each bullet item or making two separate lists would be preferable.) 19:30
19:30 foo222 joined
TreyHarris What does a signature of (|) effectively mean? I understand it syntactically, but I'm trying to understand its use in core conceptually 19:31
this may be a raku-dev question
foo222 accept any arguments 19:32
TreyHarris: ^^ 19:34
19:35 domidumont1 left, [Sno] joined
tobs foo222: camelia is a bot. She timed out 50 minutes ago and hasn't come back aparently. 19:35
foo222 tobs: thx
TreyHarris: often used in combination with {*} which is shorthand for nextsame I think 19:36
TreyHarris foo222: yes, but how does it differ from (*@a, *%h)? 19:37
or rather, (*@, *%), since the a and h make the args directly reachable 19:38
foo222 TreyHarris: it's shorter. it's anonymous. it's faster. it just accepts the args as a raw capture. (*@ for example causes prestructuring of any args, and creates an `Array` to stick them in). 19:40
er, raw `Capture` 19:41
TreyHarris foo222: okay, the restructuring of the Capture was the part I didn't realize. I thought it was just shorthand. Thanks! 19:42
foo222 TreyHarris: yw. I'd say it was *p*restructuring because I'm pretty sure any and all restructuring work it does happens before any elements arrive in the `Capture` 19:44
hmm. maybe that doesn't make sense
TreyHarris no, I follow 19:45
I think it restructures arguments and prestructures parameters
or the other way around depending on how you look at it
foo222 and, separately, destructures too
hmm. first there's a call. which must create a `Capture`. Then a parameter might be,say, `+foo`, which (p)restructures (into a new `Capture`?) and then, say, `+foo ($bar etc.)` will then destructure the result of the (p)restructure 19:48
TreyHarris: or something like that. ^^
TreyHarris sure. 19:49
20:05 leont joined
leont Trick of the day: sub alarm(int64 $time) is native { * } 20:05
Because if my code busy-hangs, control-C isn't necessarily as responsive as I'd like 20:06
20:07 zakharyas joined
TreyHarris leont: oh, is signal handling working well in rakudo now? Last time I tried it, it was still pretty hairy 20:10
leont Last time I checked it was also hairy
But in this case I want my program to die instead of taking 100% CPU
TreyHarris nods 20:25
leont If I do given/when across a pointy block barrier, is there a way to catch the succeed control exception? 20:27
Because what I observe looks more like it does the equivalent of a leave, but I can't detect it :-/
20:32 veesh_ joined 20:34 veesh left 20:35 veesh_ is now known as veesh 20:46 sena_kun left 20:47 NODE left 20:48 molaf joined, Benett left 20:53 heth left 20:55 heth joined
discord6 <theangryepicbanana> guifa: thanks for the reply. I actually tried uploading to cpan but I couldn't figure out how/where to upload it ._. 21:02
21:02 sena_kun joined
Grinnz do you have a pause account? 21:02
discord6 <theangryepicbanana> no 21:03
<theangryepicbanana> although that names sounds familiar
Grinnz you need that first: pause.perl.org/pause/query?ACTION=request_id
discord6 <theangryepicbanana> ah ok
<theangryepicbanana> is there a way that I could just use my github account?
Grinnz then, i think someone has a tool that will upload raku modules to the right place
discord6 <theangryepicbanana> ok 21:04
<theangryepicbanana> thanks
21:07 rindolf left 21:12 chloekek left 21:27 zakharyas left
SmokeMachine I'm trying to write something like a "grammar to events" kinda based on raku grammars... does anyone have any advice to me? my first thoughts on that it seems something like this: gist.github.com/FCO/82b48d1eb3e212...78752281a4 21:31
21:32 lizmat left 21:37 Benett joined 21:41 NODE joined 21:45 toddr left
foo222 SmokeMachine: hi. why are you writing the grammar? who would read it and when? why/when would someone write code using the grammar and who would they be? same for reading the code? do u see any parallels in cro's use of signatures to map to URL and request fields? and cro's templates? 21:45
SmokeMachine: does `* % ..5min` mean to get a fresh session id every 5 minutes? 21:49
SmokeMachine foo222: I'm planning on creating event stream consumers that would use those "grammars" to generate new events based on that and on the events and also could execute actions...
foo222: it accepts any number of requests with the max interval between them of max 5 min 21:50
foo222 SmokeMachine: can u give me a code or pseudocode example of an object that a consumer consumes from an event stream that would map to something in your "grammar" 21:54
21:55 NODE left, NODE joined
SmokeMachine foo222: an example could be, for example: `Event.new: :type<request>, :params{ :path</login>, :method<GET> }` 21:58
foo222 SmokeMachine: r u familiar w/ cro's use of sigs in similar circumstances? 22:00
SmokeMachine foo222: but the intent of this is not only for web events... I'm using it only as example... 22:04
foo222 SmokeMachine: cro isn't a web thing, nor its use of sigs, that's just something it's used for 22:05
22:05 wamba left
SmokeMachine foo222: yes, I know... but how could it help on that case? 22:06
foo222: sorry... I didn't get it... 22:08
foo222 SmokeMachine: put that aside for now; i'll return to it later; what precisely is `<request method=“GET” path=“/login”>` 22:11
SmokeMachine foo222: an event of a GET request to path /login 22:12
foo222 and there's presumably a connection between the example u gave earlier, to the `event req-get-login`, to the "event" u just mentioned, to the `<request method=“GET” path=“/login”>`, and u presumably think it's obvious; what are those connections, how do they get computed? 22:14
what drives what? 22:15
SmokeMachine foo222: what do you mean? 22:18
22:19 natrys left
SmokeMachine foo222: I was thinking on something like this: 22:22
m: grammar Test { rule TOP { <req-get-login>* }; rule request($path) { "GET" $path }; rule req-get-login { <request("/login")> } }; say Test.parse: "GET /login"
evalable6 「GET /login」
req-get-login => 「GET /login」
request => 「GET /login」
wildtrees how do I load a file into the repl? and reload it after loading it as well? 22:23
SmokeMachine m: grammar Test { rule TOP { <req-get-login>* }; rule request(:$path, :$method = /[GET|POST]/) { $method $path }; rule req-get-login { <request(:method<GET>, :path</login>)> } }; say Test.parse: "GET /login" 22:24
evalable6 「GET /login」
req-get-login => 「GET /login」
request => 「GET /login」
SmokeMachine foo222: but instead of a string, it should be "parsing" a remote stream... 22:25
22:25 Kaiepi left, Kaiepi joined
foo222 SmokeMachine: thx. because i know raku grammars, that's instantly all very obvious, which is extremely helpful. 22:29
22:31 thundergnat joined
thundergnat m: say ?<is Camelia back online?> 22:32
evalable6 True
thundergnat :-)
m: say <0x10.11>.base(2); #`( Cool ) say :2<0x10.11> #`{ Wait, WAT? } 22:33
evalable6 10000.00010001
thundergnat TBH, I expected :2<0x10.11> to be a syntax error. I was somewhat surprised to get an answer at all. 22:34
Especially one that apparently just ignores the :2 part of it.
foo222 so `event` is analogous to `rule`, `request` and `response` are built in rules, you're considering creation of a new DSL that's a cross between normal raku rules, normal raku code, and some of ur own ideas (`header.form-id=`), and somehow `Event.new: :type<request>, :params{ :path</login>, :method<GET> }` results in the `req-get-login` "rule" 22:35
(event) matching?
thx to whoever got camelia back up :) 22:36
22:36 patrickb left
wildtrees after a print with no newline, how do I flush stdout so I can see what I printed? 22:37
foo222 SmokeMachine: ^^ ??
jnthn wildtrees: $*OUT.flush
wildtrees tried that and tried $*OUT.flush() , neither seems to be working :( 22:38
foo222 what sort of handle is $*OUT bound to?
wildtrees i am doing it in a for lines() { ... } block
should just be terminal stdout atm
foo222 in the repl? 22:39
wildtrees doing perl6 echo.pm6 from bash in a terminal 22:40
foo222 well if it's just a line or three, what's the whole thing? 22:41
wildtrees got it working had to reorder the prompt being printed
foo222 k
wildtrees read somewhere lines() is lazy 22:42
22:43 MasterDuke joined 22:44 sena_kun left
SmokeMachine foo222: yes, something like that 22:45
foo222 SmokeMachine: Let me focus on `method=“GET”`. That is presumably some new syntax u r introducing. Is it just the string `'method=“GET”'`? Or is it some meaningful syntax u r inventing where `method` is some particular thing (another rule? a variable?), and the `=` means something? 22:49
SmokeMachine foo222: this will be the equivalente of `:method<GET>` on my grammar example... 22:50
foo222: but just to be clear: I'm not adding new syntax on grammar... I'm just using the idea of grammar was base to create a "rule parser" to my events... 22:51
22:53 pecastro left 22:56 pecastro joined
foo222 SmokeMachine: "equivalent"? I get that `method=“GET”` is somehow an *output* given `:method<GET>` as input. Is that what u mean? 22:58
SmokeMachine foo222: I mean, when you do `<request method="GET">` will match a GET request... 22:59
foo222 So it's the other way around? 23:00
23:01 sena_kun joined
SmokeMachine foo222: yes... 23:03
foo222 so `event req-get-login` is a "rule" that matches a GET request and generates an `Event.new: :type<request>, :params{ :path</login>, :method<GET> }` that's added to an event stream? 23:05
(or perhaps you're saying there's an actions class that's doing the generation bit) 23:07
SmokeMachine foo222: no, it consumes the `Event.new: :type<request>, :params{ :path</login>, :method<GET> }` and generates an `Event.new: :type<req-get-login>` that will be sent back to the stream... 23:09
foo222: I mean: `<request method="GET">` matches `Event.new: :type<request>, :params{ :path</login>, :method<GET> }` 23:10
23:12 Black_Ribbon joined 23:19 lucasb left
foo222 p6: sub foo (:@type ('request'), :@params (:$path ('/login'), :$method ('GET') ) ) { say @params }foo :type['request'], :params[ :path['/login'], :method['GET'] ] 23:23
evalable6 (exit code 1) 04===SORRY!04=== Er…
foo222, Full output: gist.github.com/ca3def756fcf88ffa4...2c762c6f33
foo222 p6: sub foo (:@type ('request'), :@params (:$path ('/login'), :$method ('GET') ) ) { say @params }foo :type['request'], :params[ :path['/login'], :method['GET'] ]
evalable6 (exit code 1) 04===SORRY!04=== Er…
foo222, Full output: gist.github.com/bdfd50bc9d21075c83...11f07bb8fc
foo222 grr
p6: sub foo (:@type ('request'), :@params (:$path ('/login'), :$method ('GET') ) ) { say @params }foo :type['request'], :params[ :path['/login'], :method['GET'] ] 23:24
evalable6 (exit code 1) 04===SORRY!04=== Er…
foo222, Full output: gist.github.com/97ee9a57a5acd132d1...0457bf48fe
foo222 p6: sub foo (:@type ('request'), :@params (:$path ('/login'), :$method ('GET') ) ) { say @params };foo :type['request'], :params[ :path['/login'], :method['GET'] ] 23:25
evalable6 [path => [/login] method => [GET]]
foo222 SmokeMachine: that's the sort of thing I meant about using signatures ^^ 23:26
23:34 nebuchadnezzar left 23:56 aborazmeh joined, aborazmeh left, aborazmeh joined