🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). This channel is logged for the purpose of keeping a history about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Log available at irclogs.raku.org/raku/live.html . If you're a beginner, you can also check out the #raku-beginner channel!
Set by lizmat on 8 June 2022.
00:07 reportable6 left 00:08 reportable6 joined 00:20 p6steve left 01:20 evalable6 left, linkable6 left 01:21 evalable6 joined 01:23 linkable6 joined 02:23 evalable6 left, sourceable6 left, notable6 left, bloatable6 left, statisfiable6 left, benchable6 left, committable6 left, nativecallable6 left, quotable6 left, releasable6 left, linkable6 left, nativecallable6 joined, evalable6 joined 02:24 quotable6 joined, releasable6 joined 02:25 bloatable6 joined, statisfiable6 joined 02:26 linkable6 joined, benchable6 joined, sourceable6 joined, notable6 joined, committable6 joined 02:30 japhb left 02:36 jj84 joined 02:37 japhb joined 02:43 jj84 left 03:27 Sankalp left 03:28 Sankalp joined 04:15 frost joined 04:29 wcs left 05:01 _________ left 05:02 _________ joined 05:25 swaggboi left 05:41 swaggboi joined 06:01 djerius left 06:03 djerius joined 06:06 reportable6 left, reportable6 joined 06:08 silug left, kjp left, leah2 left, bdju left, dpk left, codesections left, masak_ left, dustinm` left, masak joined, dpk joined, silug joined, leah2 joined 06:09 kjp joined, bdju joined 06:12 PotatoGim left, gugod left, SmokeMachine left, aqua1 left, mykhal_ left, corwin left, eof left, summerisle joined, aqua1 joined, SmokeMachine joined 06:13 PotatoGim joined, corwin joined 06:14 dustinm` joined 06:16 gugod joined 06:17 mykhal joined 06:23 human-blip left, human-blip joined 06:35 swaggboi left 06:36 swaggboi joined 06:59 Sgeo left 07:26 abraxxa joined 07:27 sena_kun joined 07:31 abraxxa left, abraxxa joined 07:32 leah2 left, leah2 joined 07:38 dakkar joined 07:50 jaguart joined
gfldex lolibloggedalittle: gfldex.wordpress.com/2022/07/11/th...d-problem/ 08:30
Nemokosch defined vs definite is just another argument for the existence of Satan 08:44
> A value check is needed in this instance because .AT-POS will coerce to Int (by rounding) what may give a reasonable answer for an unreasonable question. 08:50
This is both controversial and technically false - the value gets truncated, not rounded
Learned that the hard way just yesterday
08:50 evalable6 left, linkable6 left, evalable6 joined 08:51 linkable6 joined
lizmat Nemokosch: good spot, was watching the text more than semantics 08:56
tellable6 lizmat, I'll pass your message to Nemokosch
gfldex it wouldn't hurt is tellable6 would get a little bit smarter 09:00
dutchie if nemo ever actually shows up in irc it's going to be a flood
09:41 p6steve joined
AlexDaniel a bit smarter in what way? 09:47
it knows about messages sent from discord 09:48
aaa mmm, does it think that Nemokosch is not online? Interesting
hmmmmmm whaat 09:49
github.com/Raku/whateverable/blob/...le.p6#L100 09:50
based on that line it should not auto .tell to bridged users
the nickname here is correct: github.com/Raku/whateverable/blob/...le.pm6#L28 09:51
.seen Nemokosch
tellable6 AlexDaniel, I saw Nemokosch 2022-06-22T11:10:27Z in #raku: <Nemokosch> or escaping
AlexDaniel .seen stevied 09:52
tellable6 AlexDaniel, I saw stevied 2022-06-29T22:26:35Z in #raku: <stevied> but what about the 401 errors for all the other modules? aren't those also a problem?
AlexDaniel I'm pretty sure that it doesn't recognize discord-raku-bot in this case 09:55
it's weird because sometimes it does 🤷 09:56
if anybody is interested in debugging this, I can assist 09:59
10:03 guest39 joined 10:04 guest39 left 10:07 Altai-man joined 11:07 linkable6 left, evalable6 left 11:08 evalable6 joined 11:09 linkable6 joined 11:44 tempuser joined 11:45 tempuser is now known as user3456899 11:52 user3456899 left 12:07 reportable6 left 12:08 reportable6 joined 12:22 Sankalp left
Quibono Good morning. I assume the raku irc is more active than the discord? 12:25
12:29 Sankalp joined 12:34 frost left
moritz I have no idea how active the discord is :-) 12:41
Quibono Haha all the activity I see is on the IRC bridges. How is your day going? 12:43
12:45 Sankalp left 12:50 Sankalp joined
moritz slowly recovering from the 'rona, so could both be better and worse 12:50
Quibono Oof. Keep getting vaxxed if you can, it can help with after effects. What sort of stuff do you do with Raku? 🙂 12:52
moritz not much, these days, to be honest. Used to be pretty big into grammars, these days it's more like better shell scripts 12:54
Quibono Ah so you’re just the person to ask about grammars then. 🙂
moritz I think the last "proper" script I wrote was for splitting PDFs into separate files per chapter, using pdftk: gist.github.com/moritz/ea14aa095b3...421808b911 12:55
well yes. I've also written a / the book about them
link.springer.com/book/10.1007/978...842-3228-6
Quibono I want to write a language in raku. 12:56
moritz ah, then parsing is likely the first step :-) (and if you believe most of the compiler books, about 60% of the work, because they always seem to spend soooo much energy and page count on parsing...)
Quibono Haha you wrote the book? That’s crazy. 12:58
moritz yes, pretty crazy. It's the book I'm the most proud of, and the one with the best reviews on amazon, and the one with the worst sales numbers :-) 12:59
simply too small of a nice to sell in higher numbers
so, tell me about your language, what do you want to interpret or compile? 13:02
lizmat moritz++ # can't be said enough
And yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2022/07/11/2022-...nciations/ 13:03
moritz lizmat++ # weekly
13:04 Kaiepi joined 13:07 Kaipei left
Quibono Moritz: I might do a bytecode VM for now, then AOT compile to native later. I want the language to be good at expressing program transformations like compiler passes, since I’m planning on writing an LLVM like tool chain in it. 13:13
13:13 morte_ joined
Altai-man lizmat++ 13:20
Quibono Potentially it’d be cool to try and get an AOT compiler option for raku, I heard there’s a test suite for compilers? 13:21
nine Quibono: the language is defined by a specification test suite. So there's that. Also the new RakuAST based frontend will make it much easier to try fancy things like writing an AOT compiler. That said, the latter would be a huge undertaking. 13:41
13:46 jgaz joined
Quibono Nine: yeah, my plan is to build the backend up to compile my (simple) language, and then work on seeing about other frontends. 13:56
14:00 jgaz left 14:06 Sgeo joined 14:08 morte_` joined 14:10 morte_ left 14:15 jgaz joined 14:29 morte_` left 14:30 monkey_ joined 14:31 wcs joined
p6steve what is the best way to take a CArray[uint8] (of utf8 encoded bytes) and make a Str? 15:16
I have got as far as $array.list to give me the List of chars ... but decode only seems to work on bin encoded data 15:17
15:19 Sankalp left 15:24 Sankalp joined
p6steve quibono: the discord raku channel is usually empty but for visitors asking where everyone is ... occasionally a tumbleweed ... perhaps we should pin a statement to the channel home to explain how to use the discord raku bot? 15:25
15:38 clarjon_1 is now known as clarjon1
p6steve finally worked out discord irc bridge 15:48
15:53 abraxxa left
coleman hello discord! 16:05
Nemokosch Sup 16:06
coleman Not much, just relaxing over here in Raku's IRC 16:07
Wasn't aware the bridge between Discord and IRC had issues, but thanks to p6steve for working the problem 16:08
Voldenet m: Buf.new(<226 134 145 32 84 104 105 115 32 105 115 32 116 104 101 32 98 101 115 116 32 119 97 121 44 32 112 54 115 116 101 118 101>).decode().say 16:10
camelia ↑ This is the best way, p6steve
Voldenet m: use NativeCall; Buf.new(CArray[uint8].new(<226 134 145 32 84 104 105 115 32 105 115 32 116 104 101 32 98 101 115 116 32 119 97 121 44 32 112 54 115 116 101 118 101>)).decode().say 16:11
camelia ↑ This is the best way, p6steve
Voldenet this also works
p6steve coleman: that's really my unfamiliarity with the need to go #verify: rank? member and then select #irc-raku ... but maybe I'm not the only one 16:12
Voldenet: oh so simple
Voldenet: thanks!!
Voldenet I was stuck on a few "oh it's so obvious" problems a lot too 16:13
16:14 Altai-man left, Altai-man joined 16:25 jgaz left, dogbert17 left 16:28 dogbert17 joined 16:35 dakkar left 17:03 melezhik joined
melezhik . 17:03
jjatria any luck with PublicSuffix/Sparky setup?
p6steve 1 #!/usr/bin/env raku 17:06
2
3 use lib '../lib';
4
5 use Dan;
6 use Dan::Polars;
7
8 my \df = DataFrame.new;
9 df.read_csv("../dan/src/iris.csv");
10 df.head;
11 17:07
12 my \ds = df.to-dataset;
13 say ds[3;3];
[Coke] p6steve: please use something like gist.github.com for sharing multi-line snippets)
p6steve anton: I have now made a to-dataset methon in Dan::Polars so that you can use it to Polars / Rust read_csv;
anton: you can use it like this 17:08
Coke: oh, ok sure
anton: I will put this in a snippet with the cli deployment info 17:09
anton: please send me your 700MB csv exampl eif possible and I can time it 17:10
17:11 Altai-man left 17:20 swaggboi left 17:21 swaggboi joined
p6steve anton: meantime the gist is here gist.github.com/p6steve/c733fb6c9a...ff0b1fda32 17:22
17:39 jgaz joined 18:06 reportable6 left 18:07 melezhik left, melezhik joined 18:08 reportable6 joined
melezhik . 18:08
jjatria melezhik: nothing yet. I need to find some time to try it out, and I still need to make sure that the automatic deploy thing even works 🤞 18:09
tonyo jjatria: limited in what way? Once you have the token you can just put the token in the cloud (should be in the fez config file if you're logged in) 18:17
jjatria I didn't know fez could generate tokens already. How do they work?
I was thinking limited in that you could given them permission to push only certain dists, etc
tonyo Ah, I have nothing like that set up 18:18
They're just login tokens and they expire after 30 days
jjatria Yeah, I mean, I don't know how often a setup like this would be needed
tonyo The idea of using an org could also help so you just have an org and make a generic user for the org and push dists that way 18:19
jjatria But then that bot user can still make releases for any dist in that org, right?
It would serve to disconnect this from your personal creds, but it would still have global write access 18:20
global = inside that org
tonyo Yea they could release any dist in that org, was thinking more to isolate your own user 18:21
jjatria (in case you've missed the context: this is for raku.land/zef:jjatria/PublicSuffix with the idea that something could trigger a new release whenever the public suffix list gets an update)
tonyo Hmm I'll give that a think
That sounds like something using a jwt would solve 18:22
jjatria Incidentally: with a setup like that, generating up to several releases per week in busy periods it seems, would storage become a problem? 18:23
re. jwt: hm, interesting...
lizmat And yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2022/07/11/2022-...nciations/ 18:28
looks like I forgot to clickbait on #raku
or not?
hmmm
japhb lizmat: I saw it 5 1/2 hours ago or so 18:30
lizmat weird... I looked on my mobile about 3 hours ago, and it wasn't there
hmmm
anyways, an extra clickbait never hurts 18:31
japhb True! :-) 18:35
18:54 melezhik left 18:57 jaguart left 19:00 melezhik joined
melezhik jjatria my take on that - one could spin up a sparky server , that would run scheduled job to check updates from public suffix list and then if any will trigger a new distro release, Sparky covers pretty much all this scheduling logic and even more - github.com/melezhik/sparky#run-by-cron 19:03
the only question is if you are willing to spin up and support Sparky instance
as for the secrets - they could be injected into Sparky VM as env vars, so that for example fez-login plugin could use this information to setup login to fez - sparrowhub.io/plugin/fez-login/0.000003 19:05
19:15 mexen left 19:18 m_athias left, Sankalp left, m_athias joined 19:22 guifa joined, Sankalp joined
guifa o/ 19:29
Nemokosch how can I treat Whatever and WhateverCode identically? 19:31
guifa context? 19:32
Nemokosch Basically I want to do some indexing with the Whatever star and don't want to "special-case" the star in itself 19:33
guifa subset Whatevs of Any where Whatever|WhateverCode; 19:35
lizmat I was going to say: you can't without using junctions or a subset
guifa A whatever isn't callable though 19:36
Nemokosch Ah, this is kind of stupid though, the star represents a very exact value 19:37
`* + 2 - 2` is equal to `*`, except one has a nice interface to work with 19:39
19:54 [Coke] left 19:55 [Coke] joined
Geth doc/finanalyst-patch-1: 0248426715 | (Richard Hainsworth)++ (committed using GitHub Web editor) | doc/Language/modules.pod6
Update modules.pod6
19:55
doc: finanalyst++ created pull request #4095:
Update modules.pod6
20:05
20:22 sena_kun left
Geth ecosystem: b0375239f0 | (Richard Hainsworth)++ (committed using GitHub Web editor) | META.list
Update META.list

migrated from p6c to fez: RakuConfig, raku-pod-render, pod-from-cache, raku-pod-extraction
20:23
guifa nemokosch: ah. In that case, I'd still do a multi, and just have the whatever return a whatever returning the object itself (via .self)
tellable6 guifa, I'll pass your message to Nemokosch
guifa m: multi sub foo(WhateverCode &bar) { bar(42) }; multi sub foo(Whatever &) { samewith *.self }; say foo (* + 2); say foo *;
camelia ===SORRY!===
Calling foo(WhateverCode) will never work with any of these multi signatures:
(WhateverCode &bar)
(Whatever &)
at <tmp>:1
------> oo(Whatever &) { samewith *.self }; say ⏏foo (* + 2); say foo *;
Calling…
guifa wait what?
20:24 swaggboi left
guifa oh right 20:24
20:24 swaggboi joined
guifa Foo &bar = Callable[Foo] 20:24
m: multi sub foo(WhateverCode $bar) { $bar(42) }; multi sub foo(Whatever $) { samewith *.self }; say foo (* + 2); say foo *; 20:25
camelia 44
42
20:28 sena_kun joined
Nemokosch why does this work? 😅 20:39
guifa If you say foo * + 2, the * + 2 becomes a WhateverCode (which is a callable, hence we can $bar(42) ) 20:40
If you say foo *, it's a Whatever, not useful since it's not callable. samewith says "call foo again, but use this other set of arguments instead" 20:41
Nemokosch so far so good
guifa The main multi candidate will only take a whatevercode though, so we need to a pass a whatevercode identity function, as it were
the only way to do that that I know of is *.self (and it's a method on Mu, so guaranteed to work for *everything*) 20:43
et violà, I finally found a use for .self !
Nemokosch indeed, so what is the whatevercode identity function? 🧐
guifa *.self
m: my &foo = *.self; say foo 55; say foo 'bar'; say foo /regex/ 20:44
camelia 55
bar
/regex/
guifa or put another way, *.self is equivalent to -> $x { $x.self }, which by definition produces the same as -> $x { $x } 20:46
20:47 jaguart joined
Nemokosch oh, so in this case, the star has no special relevance 20:47
it just happens to be a Whatever-ish way
guifa Yeah. Per the docs 20:49
Nemokosch this is good enough I'd say
thanks
guifa "Whatever is a class whose objects don't have any explicit meaning; it gets its semantics from other routines that accept Whatever-objects as markers to do something special. Using the * literal as an operand creates a Whatever object."
20:50 monkey_ left
Nemokosch I find it mentally tiring to keep in mind that even the apparent method call on * is operator stuff 20:52
20:53 melezhik left 21:00 lizmat_ joined 21:03 lizmat left 21:07 swaggboi left 21:08 swaggboi joined 21:11 morte_ joined 21:20 melezhik joined 21:37 melezhik left 21:52 kaskal- is now known as kaskal 22:02 perlbot left 22:03 simcop2387 left, morte_ left
tonyo jjatria: storage shouldn't be a problem, it's all sitting here in s3 22:11
22:22 lizmat_ is now known as lizmat 22:25 simcop2387 joined 22:26 perlbot joined
guifa Nemokosch: you can do a true call on * by encasing it in parentheses 22:28
tellable6 guifa, I'll pass your message to Nemokosch
guifa m: say (*).^methods
camelia WhateverCode.new
guifa hrm
m: say ((*)).^methods 22:29
camelia (Capture ACCEPTS raku Str BUILDALL)
22:31 melezhik joined 22:37 jgaz left 22:42 tejr left 22:47 tejr joined 22:54 jaguart left
tonyo not to be confused with 23:10
m: say [*] [1,2,3]
camelia 6
23:26 merpaderp left 23:28 merpaderp joined 23:43 wcs left 23:45 Colere left, melezhik left 23:48 Colere joined