🦋 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.
the_real_pk The extension is a language server, so 00:04
Geth docker: 5ee0f98efb | AntonOks++ | 4 files
Bump to 2024.12 [skip workflow]
03:29
sampersand—2B +| +^2B == FF Two questions: how can i get a list of digits out of a number, and how can i get the chars out of a string? 04:58
antononcube Using .comb. 06:58
Voldenet m: "this way".ords.say 11:27
camelia (116 104 105 115 32 119 97 121)
Voldenet oh wait, nevermind, I read the question wrong 11:28
.comb is the way, for numbers .Str.comb will work 11:32
lizmat and yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2024/12/16/2024-51-bus/ 11:38
nahita3882 for numbers .comb will do .Str.comb for us 11:50
github.com/rakudo/rakudo/blob/main...kumod#L318 11:51
Geth ecosystem/main: 7d0e511651 | (Elizabeth Mattijsen)++ | META.list
Remove Xmav::JSON

It was only a proof of concept
12:22
ecosystem/main: 5495fcb63c | (Elizabeth Mattijsen)++ | META.list
Remove spitsh

The owner has archived the repo
13:07
ecosystem/main: 04119774b0 | (Elizabeth Mattijsen)++ | META.list
Remove Task::Galaxy

The owner is no longer interested in it, and it has become obsolete due to the large number of new modules in the Raku ecosystem
13:10
ecosystem/main: 0d292cb46b | (Elizabeth Mattijsen)++ | META.list
Remove Maven

The owner has archived the repo
13:15
Geth ecosystem/main: c2255cb5fb | (Elizabeth Mattijsen)++ | META.list
Remove String::FuzzyIndex

It is now a Raku Community module
13:54
Geth ecosystem/main: a927e5d788 | (Elizabeth Mattijsen)++ | META.list
Removed Net::IRC

It hasn't really been touched in 8 years, and its function has been basically superseded by IRC::Client
14:04
Geth ecosystem/main: 7748595dd8 | (Elizabeth Mattijsen)++ | META.list
Removed Math::Quaternion

Because it lives on as a Raku Commmunity module
15:03
Geth ecosystem/main: d45196ef1d | (Elizabeth Mattijsen)++ | META.list
Remove November

It hasn't been touched in 9 years, it dates back to the Apache, mod_rewrite and Parrot days and as such looks unfixable without a major investment
15:15
Geth ecosystem/main: 58e8517b9f | (Elizabeth Mattijsen)++ | META.list
Remove Text::Abbrev

Re-imagined its sole exported subroutine as part of the String::Utils package
16:15
Geth ecosystem/main: 89ddce6d67 | (Elizabeth Mattijsen)++ | META.list
Remove PerlStore

It needs to be re-imagined probably using the Rakudo bytecode format and with a different name
18:04
Geth advent/main: 243e2f23be | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | raku-advent-2024/authors.md
20 -> 17
19:47
lizmat still 3 open slots in the Advent calendar :-(
Geth ecosystem/main: bd0645b17c | (Elizabeth Mattijsen)++ | META.list
Remove Nova Patch's modules

The live on as Raku Community modules now
20:05
advent/main: 347fd0bc2c | librasteve++ (committed using GitHub Web editor) | raku-advent-2024/authors.md
21 => 18
20:10
lizmat librasteve thanks!
Geth advent/main: e27302678a | librasteve++ (committed using GitHub Web editor) | raku-advent-2024/authors.md
Update authors.md
20:12
librasteve still leaves 20 and 21 open ;-( 20:13
lizmat well, if push comes to shove, I can whip up a few blogs posts, but I'd rather not have to :-) 20:15
the day 25 post is at least going to cost me a day to cobble together 20:16
afk& 20:19
Geth advent/main: f515d71e46 | ab5tract++ (committed using GitHub Web editor) | raku-advent-2024/authors.md
Adding another ab5tract post on the 20th
21:33
Xliff \o 22:38
I'm having some issues with multi dispatch and have a question. Might there be some caching done there? I use a multi dispatch some 4 times in a bit of test code I wrote and have a multi dispatch A and B. If I run A-A-B-A, it works just fine. If I run B-A-B-A it doesn't. Can someone tell how the last A doesn't run properly? 22:41
ab5tract Xliff: I think a bit of code to review might go a long way in this case 22:55
Xliff Yeah. Was afraid you might say that. The problem is that it's all unreleased and I'm still separating much of it from $dayJob code.
So until I get it released, I might need to find a workaround. I was hoping someone just knew if raku cached multis. 22:56
lizmat the call site of a method call will cache the candidate to be used depending on the capture it receives 23:08
it's been pretty good at that so far, but maybe there are still bugs lurking there 23:09
also: is this single threaded or multi threaded?
Xliff Single 23:25
The workaround turned out to be to create a new object that was retrieved by the int version of the record and use that. 23:26
lizmat: BTW - Loved your more recent article. Was a nice write up about how to speed up some things. All of these bits and pieces we might want to collect into a guide or something. 23:27
timo1 the dispatcher stuff is pretty cool but if you don't already know what exactly you're looking for, not exactly easy to grok. there's one option that dumps every "activity" of the dispatcher logic, but since dispatchers cover things from boolifying over type checking to deconting and finally method lookups and invocations ... well, if you have a raku program and you run it with the logging turned on 23:40
you'll be swimming in output in a matter of milliseconds :)
Xliff Suspected as much. 23:41
timo1 good(?) news though, you can step through the dispatcher code with App::MoarVM::Debug, but without a facility to make outputting "the value of lexical X" after every step trivial, you'll be typing up a storm before you learn much of anything 23:42
plus, almost all variables are optimized into locals instead of lexicals in most of the dispatchers thanks to the nqp optimizer being allowed to do a lot more than the raku one ... and you don't get to look at those in the debugger either
this general topic is something i would like to give some thought to 23:44
there's no reason why the remote debug api shouldn't be able to inspect some amount of information about dispatchers 23:45
the debug logging stuff is a compile time switch, but there's no reason why it couldn't be filtered or turned on and off at runtime either 23:48
(i assume it's compile time because it's a rather hot code path that we don't want to waste time checking for "debug on?" on or something, but i don't have measurements or anything)
.o( did anyone say ... self-modifying code? ) 23:50
Xliff I've been saying that. Was hoping we could use RakuAST to accomplish this. 23:51
timo1 oh, the part i'm refering to actually lives inside moarvm, so it's written in C
Xliff However, I'm not so sure about how easy it would be. If we have an existing AST, could we modify it like we do the Web DOM?
timo1 you've been saying what exactly? 23:52
Xliff Oh. Wouldn't writing self-modifying code in C basically turn into an AST anyways>
timo: I've been saying that, with RakuAST, raku could be self-modifying. 23:53
timo1 i'm sure there's different ways to go about it, some more ast like and some less ast like?
Xliff Although aren't RakuAST nodes immutable once created? 23:54
timo1 i haven't looked very deeply into rakuast yet, but i imagine the trickier question might be how you can cause something that was created from a piece of rakuast tree to be "updated" whenever you make changes, whether it's a "make a clone of the whole thing with some modifications" or "modify he nodes in-place" 23:56
Xliff Exactly!
timo1 like, for anything routine-like we'd have turned the rakuast into moar bytecode and that would then have already become what we attach to the object in question?
Xliff Of course, this might not be a question until RakuAST has been completed. 23:57
But if we were smart, wouldn't we just associate the non-executed AST with the bytecode? We'd clone the non-executed AST and then convert the clone to bytecode and then just drop the clone once done. 23:58
timo1 do you know about the different phases a rakuast goes through during compilation? something like binding or linking or so? i seem to recall that's an important part that's new and that makes things better compared to the previous design based on the World class
Xliff I would expect the act of generating bytecode would make the AST immutable.
Nope. I just have a basic understanding of the concept. Would love to dive in, though. 23:59