🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). 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 6 September 2022.
00:22 librasteve joined 00:28 librasteve left 00:56 librasteve joined 01:01 yewscion joined, librasteve left 01:13 yewscion left 01:28 librasteve joined 01:33 librasteve left 01:39 jjido left 01:41 japhb left, japhb joined 01:51 japhb left 01:52 yewscion joined, hulk joined 01:53 kylese left 02:01 librasteve joined 02:02 japhb joined 02:03 yewscion left 02:04 yewscion joined 02:06 human-blip left 02:08 human-blip joined 02:10 librasteve left 02:13 vasko4 left 02:15 hulk left, kylese joined 02:18 human-blip left 02:20 human-blip joined 02:22 librasteve joined 02:23 yewscion left 02:27 librasteve left
disbot3 <romdav55_30502> a Cro question.. 02:51
<romdav55_30502> Hello Whats the best aproach for redirects on user protected areas? i have this route { get -> 'dashboard',@path { if !(request.auth.is-logged-in) { redirect :see-other, '/user/login'; } else { content 'text/html', "User content"; } } } But i looking for a way to do this route { get -> 'dashboard',@path { if !(request.auth.is-logged-in) {
redirect :see-other, '/user/login'; # Some whay to finish the request here } content 'text/html', "User content"; } } Or there are a better whay?
02:56 librasteve joined 03:01 librasteve left 03:36 yewscion joined 03:45 kylese left 03:46 librasteve joined 03:47 kylese joined 03:51 guifa left 04:03 yewscion left 04:05 yewscion joined 04:57 librasteve left 05:02 yewscion left 05:05 yewscion joined 05:06 librasteve joined 05:11 librasteve left 05:40 librasteve joined 05:45 librasteve left 06:00 librasteve joined 06:03 yewscion left 06:04 librasteve left 06:05 yewscion joined 06:07 librasteve joined 06:10 melezhik joined 06:11 librasteve left 06:27 librasteve joined 07:03 yewscion left 07:05 yewscion joined 07:23 yewscion left, yewscion joined 07:31 librasteve left 07:36 wayland joined 07:44 librasteve joined 07:48 librasteve left 07:51 Aedil left 08:02 yewscion left 08:03 yewscion joined
disbot3 <jubilatious1_98524> @Voldenet arxiv.org/abs/1504.06804 08:03
08:08 librasteve joined 08:12 librasteve left 08:14 librasteve joined 08:19 librasteve left 08:25 librasteve joined 08:30 melezhik left 08:33 Manifest0 joined 08:37 librasteve left 08:58 jjido joined 09:02 yewscion left 09:05 yewscion joined
wayland (reading backlogs again) 09:12
lizmat: What I'd love to see in core (instead of SQLite) is native table support, with the idea that we can attach any backend (any SQL, or spreadsheet, or CSV, or whatever) and use the same Table interface to talk to them. 09:13
I'm developing TOP as a proof-of-concept of that (it currently includes the backends as well, but would like to eventually separate them) 09:14
lizmat sounds like a plan
09:14 jjido left
wayland (Trees as well; same concept; the backend could be XML, or JSON, or AST, or whatever). 09:14
lizmat will be afk for most of the day, so don't expect any quick feedback from me 09:15
what else is a tree than a hash of hashes ? order ?
wayland lizmat: Well, for XML, certainly order. But the points are a) there are tree queries/transformations that are easy in XPath/XSLT that are less easy in Raku, and I'd like the power of both languages in one, and b) I'd like to see us have the same interface for trees whether they're stored in XML, or the Filesystem, or JSON, or whatever. 09:18
lizmat this is eerily close to what we need in RakuAST for optimizations / macros, actually 09:19
going afk now& will backlog
09:19 lizmat left
Voldenet @jubilatious1_98524: the slowest part of hashing string is doing all the fetch operations to retrieve their contents 09:23
09:35 jjido joined 09:38 jjido left
wayland lizmat: Yeah, I saw a comment about Raku internals needing trees. I'm not much of a Raku Internals hacker, but I've collected ideas about transforming and manipulating trees from multiple sources (eg. Raku grammars, XSLT, filesystems, etc), so I have ideas about what syntax/operators might be useful :) 09:47
tellable6 wayland, I'll pass your message to lizmat
09:49 Sgeo left 09:53 Aedil joined
timo how do you mean "needing trees"? lots of things in compilers are tree-shaped for sure 09:57
wayland Sorry, I meant "Needing a generic interface for handling trees". I don't remember what the comment was or where I saw it, but it was in the last 2 months. Odds are it was here, but not sure. 09:58
Unfortunately there's only one of me, and I'm doing tables before I do trees. 09:59
10:03 yewscion left 10:04 yewscion joined
timo we had a bit of discussion about the topic of tree traversal/matching APIs at the summit 10:09
wayland timo: Nice! 10:13
apogee / Xliff : Might be worth taking your notcurses discussion to the #mugs channel as well -- they do a lot of TUI stuff. 10:20
ntv: ^^ 10:22
tellable6 wayland, I'll pass your message to ntv
apogee_ntv Thanks, yeah quite possibly. 10:35
I've been sidetracked by Image::PNG::Portable stuff but Notcurses is still a priority for me 10:36
timo but really not very much discussion at all tbh 10:39
11:02 librasteve joined 11:03 yewscion left 11:04 yewscion joined 11:15 librasteve left
SmokeMachine wayland: I was planing on writing Reddish that would be a role implementing the Red API that could be used to anything… haven’t started yet… I don’t know if anyone would be interested on using that… 11:30
11:38 guifa joined
SmokeMachine Hi guifa! How is going your Window meta model? 11:39
guifa slowly ha 11:40
haven't had a lot of time to work on it
SmokeMachine .subst(/“ going”/, “”).chop ~ “ going?” 11:44
Would it make sense to exist a bot that when you do something like this 👆 , or like s/…//, or something related to fix your previous message, the bot would apply that to your last message and “print” it? 11:47
wayland SmokeMachine: If I make progress on Table-Oriented Programming, it could be used as a Reddish. 11:51
12:02 yewscion left 12:05 yewscion joined 12:55 yewscion left 13:04 yewscion joined 13:21 abraxxa-home joined 13:25 abraxxa-home left 13:26 abraxxa-home joined 13:27 lichtkind joined 13:37 wayland left, wayland76 joined 13:39 librasteve joined 13:45 librasteve left 13:54 Xliff joined
Xliff \o 13:54
tellable6 2025-07-02T08:00:59Z #raku <ab5tract> Xliff: re: "Right, but then you'd have to add in whole dynamic naming convention routines because you'd need to add a method with a different name. "
ab5tract Xliff: I wasn't sure what you meant by the above 13:55
but it was a while back :)
Xliff I'm writing tests using the Test module, and I need "is" to compare two objects. Overriding eqv() does not seem to work. What mechanism do I need to hook into? 13:56
ab5tract: When you were talking about replacing a method with .^add_method. I suggested using .wrap to avoid naming collisions.
ab5tract I think that was someone else saying that 13:57
Xliff It seems like SmokeMachine might have provided a solution.
Hmmm... maybe it was.
ab5tract I think he did, yeah
Xliff I'd have to check scrollback to be sure. I'm running from memory. 13:58
ab5tract Xliff: you can always do `ok $a ~~ $b`, right?
Xliff It's been known to be fallible.
ab5tract or whatever comparison operator you want
`ok` is known to be fallible?
timo Xliff: "is" uses string equality, the "eq" operator in its own scope 13:59
Xliff ab5stract: Yeah. That's what I settled on at first, but I really wanted is() because it will show the comparison.
timo Xliff: you may want cmp-ok instead
Xliff Ooh! timo++
timo: Does it show both sides on failure?
ab5tract timo: TIL.. kind of weird that it is not built as a multi so that `is 8, 8` would dispatch to a routine that does `8 == 8` 14:00
timo it shows both sides, and also what matcher was used
ab5tract I have a strong feeling we didn't have coercions back then
Xliff Nice! Thank you!
ab5tract `cmp-ok` sounds like it already does what I was just imagining 14:01
timo the only special thing "is" does is when you have an undefined value on the RHS 14:03
then it will === instead of "eq"
ab5tract: "is" and the rest of Test was designed long before I got involved, so I don't really know anything 14:10
ab5tract It would be interesting to take some pokes at a new testing library... maybe as a by-product of implementing macros 14:16
timo i feel like we've got something like that in the ecosystem 14:17
SmokeMachine Xliff: it was to guifa … and I suggested him this: glot.io/snippets/h8tnx81clw 14:34
15:01 jjido joined 15:14 jjido left 15:36 librasteve joined 15:42 librasteve_ joined
librasteve_ seen: lizmat 15:45
tellable6 librasteve_, I saw lizmat 2025-07-04T09:19:38Z in #raku: <lizmat> going afk now& will backlog
librasteve_ seen: vrurg 15:49
tellable6 librasteve_, I saw vrurg 2025-04-07T13:25:48Z in #raku-dev: <vrurg> nine: wow, that's quite an achievement!
16:01 MasterDuke joined
Xliff What's the best way to merge two hashes? 16:08
For some reason .append is telling me "Trailing item in Hash.append" 16:09
Voldenet m: my %a = :foo(1), :bar(2); my %b = :bar(3), :tar(4); my %n = %a (+) %b; say %n 16:13
camelia {bar => 5, foo => 1, tar => 4}
Voldenet no idea if that's the best way, but it sure is short 16:14
and trailing item happens when you have uneven number of args 16:16
my %a = :foo(1), :bar(2); my %b = :bar(3), :tar(4); say %a.append(%b) 16:17
evalable6 {bar => [2 3], foo => 1, tar => 4}
MasterDuke m: my %a = :foo(1), :bar(2); my %b = :bar(3), :tar(4); my %n = %a, %b; say %n   # if you want the later one(s) to overwrite the earlier one(s) 16:19
camelia {bar => 3, foo => 1, tar => 4}
librasteve_ m: my %a = :foo(1), :bar(2); my %b = :bar(3), :tar(4); say %a ,= %b; 16:23
camelia {bar => 3, foo => 1, tar => 4}
librasteve_ if you want to update the first one 16:24
16:36 MasterDuke left
Xliff Thanks, folks! 16:51
Turns out that append only works on %-sigiled. So even if you have "my $a = { a => 1, b => 2 }" you still have to do "%hash.append(%$a)"
librasteve_ ah - wondered why I couldn’t get .append to work 16:54
17:01 jjido joined 17:06 wayland76 left, wayland76 joined 17:19 librasteve left
disbot3 <jubilatious1_98524> [0] > my %a = :foo(1), :bar(2); my %b = :bar(3), :tar(4); say %a.append(%b) {bar => [2 3], foo => 1, tar => 4} [0] > say %a.push(%b) {bar => [2 3 3], foo => 1, tar => [4 4]} [0] > say %a.append(%b) {bar => [2 3 3 3], foo => 1, tar => [4 4 4]} 17:29
17:32 librasteve joined 17:36 librasteve left
disbot3 <jubilatious1_98524> [0] > say %a {bar => [2 3 3 3], foo => 1, tar => [4 4 4]} [0] > say %b {bar => 3, tar => 4} [0] > say %a (+) %b Bag(bar(7) foo tar(7)) [0] > say %a (|) %b Set(bar foo tar) 17:39
17:59 melezhik joined
melezhik o/ 17:59
18:00 librasteve joined 18:04 librasteve left 18:13 Guest91 joined 18:17 Guest91 left 18:24 librasteve joined 18:26 Sussy joined
Sussy Hi Good evening everyone, It's been long since I came back here. Idk what happened but looks like you have  loses discord for now 18:27
*closed 18:28
disbot3 <librasteve> yep
Sussy I hope you all are well 18:29
disbot3 <librasteve> we are alive and kicking 18:34
<librasteve> wonders why you dropped by?
<librasteve> (not the buzz!) 18:35
Sussy Good to hear that folks 18:36
Just got nostalgia so back 18:37
disbot3 <librasteve> yeah - be careful ... raku nostalgia is kinda compelling 18:38
Sussy 🙂🍭 18:39
disbot3 <librasteve> m: say '12.34'.succ;
<Raku eval> 13.34
<librasteve> m: say 'img001.png'.succ
<Raku eval> img002.png
<librasteve> sorry - I am just discovering .succ 18:40
<librasteve> m: say 'α'.succ 18:41
<Raku eval> β
Sussy Ohh when was the summit?
disbot3 <librasteve> 2 weeks ago ... rakudoweekly.blog/blog-feed/ 18:42
<librasteve> ^^ has some info
Sussy Read that 18:43
First thing I did was to check the blog 18:44
disbot3 <librasteve> cool ... what's your impression ... do you think the summit outcome was positive, are we headed somewhere cool oir are we lost 18:50
18:52 Sgeo joined
Sussy I think you all guys are cool have built something great but My biggest concern and I guess yours is also the adoption I think. 18:54
🥲 Sorry for directly touching pain point. 18:55
I am blunt
disbot3 <librasteve> (btw - i am not a builder ) ... agree kudos to them for "something great" 18:56
18:56 abraxxa-home left, abraxxa-home joined
disbot3 <librasteve> blunt is good ... 18:56
18:57 abraxxa-home left
Sussy Can you please tell me about the discussion on adoption 18:58
18:58 Sussy left 18:59 abraxxa-home joined
disbot3 <librasteve> well, the "discussion" afaik goes "there is no adoption, what do we have to do to get it" 18:59
18:59 Sussy joined
disbot3 <librasteve> www.perplexity.ai/search/crossing-...YOpRLEkgzQ 18:59
Sussy I accidentally closed connection
disbot3 <librasteve> np
Sussy And did had a bouncer 19:00
librasteve_ www.perplexity.ai/search/crossing-...YOpRLEkgzQ
disbot3 <librasteve> ^^ this is my (quite vintage now) go to text on "what to do if you tech startup can't find product market fit 19:01
<librasteve> (also Geoff bought me a case of Heineken) 19:02
Sussy So what is the niche or I would say the blue ocean we are looking for
Is it been decided 19:03
?
19:05 guifa left
Sussy 👀 19:07
19:09 Sussy left, Sussy joined
Sussy Good Night bye Have good day all 19:10
19:11 Sussy left 19:25 Sussy joined 19:30 librasteve left 19:31 Sussy left 19:32 Sussy joined, Sussy left 19:41 librasteve joined 19:42 jjido left 19:46 librasteve left 19:50 librasteve joined 20:09 melezhik left 20:12 librasteve left, Aedil left
disbot3 <jubilatious1_98524> @oshboy ^ 20:14
20:25 librasteve joined 20:53 simcop2387 left 20:56 MasterDuke joined 20:59 simcop2387 joined 21:13 jjido joined 21:17 librasteve left 21:23 simcop2387 left, librasteve joined 21:30 simcop2387 joined 21:41 lizmat joined 22:03 yewscion left 22:05 yewscion joined 22:06 librasteve left
apogee_ntv Adoption is fundamentally the hardest problem to solve. My contribution to this is building the FFI wrappers and the core functionality in the language ecosystem that isn't there, and we need more people doing that, but also people optimizing MoarVM, people evangelising and risk-takers building commercial success on a Raku platform to create jobs. It's a multi-faceted problem and the timescale is 22:11
years.
Pick a domain you know well, build good libs, that's step 1. We need an ecosystem that people feel confident they can find what they need in it. Step 2 is completion, certification, not just supporting your own use case but all use cases. This probably needs some kind of foundation to support because its thousands of hours of work. Just my $0.02 and I don't speak for the language, I'm a noob too. 22:13
22:14 apac joined
apogee_ntv Look at Rust/Zig as success models. 22:16
What do they have? Funding, large ecosystem, relentless evangelism.
22:16 librasteve joined 22:22 librasteve left, librasteve_ left 22:24 apac left 22:26 MasterDuke left 22:36 abraxxa-home left 22:49 librasteve joined 22:52 lichtkind left 22:53 librasteve left 23:02 yewscion left 23:05 yewscion joined
wayland76 Anyone know why www.youtube.com/playlist?list=PLA9...xitFRyEGza is now saying "14 unavailable videos are hidden"? 23:21
23:21 librasteve joined 23:25 yewscion left 23:26 yewscion joined 23:27 librasteve left 23:40 librasteve joined 23:45 librasteve left
[Coke] I asked on #yapc 23:54
23:57 guifa joined