00:02 ky1 left 00:03 ky1 joined 00:12 ky1 left 00:13 ky1 joined 00:23 ky1 left, ky1 joined 00:33 ky1 left, ky1 joined 00:43 ky1 left, ky1 joined 00:52 ky1 left 00:53 ky1 joined 01:00 [Coke] joined 01:02 ky1 left 01:03 ky1 joined 01:12 ky1 left 01:13 ky1 joined 01:23 ky1 left, ky1 joined 01:32 ky1 left 01:33 ky1 joined 01:52 ky1 left 01:53 ky1 joined 02:03 ky1 left, ky1 joined 02:04 hulk joined, kylese left 02:13 ky1 left, ky1 joined 02:22 ky1 left 02:23 ky1 joined 02:33 ky1 left, ky1 joined 02:42 ky1 left 02:43 ky1 joined 02:52 ky1 left 02:53 ky1 joined 03:02 hulk left, kylese joined, ky1 left 03:03 ky1 joined 03:12 ky1 left 03:13 ky1 joined 03:15 kylese left, kylese joined 03:23 ky1 left, ky1 joined 03:33 ky1 left, ky1 joined 03:42 ky1 left 03:43 ky1 joined 03:52 ky1 left 03:53 ky1 joined 04:12 Aedil joined 04:13 ky1 left, ky1 joined 04:23 ky1 left, ky1 joined 04:32 ky1 left 04:33 ky1 joined 04:42 ky1 left 04:43 ky1 joined 04:52 ky1 left 04:53 ky1 joined 05:02 ky1 left 05:03 ky1 joined 05:06 guifa left 05:12 ky1 left 05:13 ky1 joined 05:23 ky1 left, ky1 joined 05:30 Sgeo left 05:33 ky1 left, ky1 joined 05:43 ky1 left, ky1 joined 05:52 ky1 left 05:53 ky1 joined 06:03 ky1 left 06:04 ky1 joined, kaskal left 06:12 ky1 left 06:13 ky1 joined 06:22 ky1 left 06:23 ky1 joined 06:33 ky1 left, ky1 joined 06:42 ky1 left 06:43 ky1 joined 06:53 ky1 left, ky1 joined 07:02 ky1 left 07:03 ky1 joined 07:12 ky1 left 07:13 ky1 joined 07:23 ky1 left, ky1 joined 07:32 ky1 left 07:34 ky1 joined 07:42 ky1 left 07:43 ky1 joined 07:52 ky1 left 07:53 ky1 joined 08:03 ky1 left, ky1 joined 08:13 ky1 left, ky1 joined 08:22 ky1 left 08:23 ky1 joined 08:25 hudo joined, hudo_ joined 08:32 ky1 left 08:33 ky1 joined 08:42 ky1 left 08:43 ky1 joined 08:52 ky1 left 08:53 ky1 joined 09:02 ky1 left 09:03 ky1 joined, dakkar joined 09:13 ky1 left, ky1 joined 09:22 ky1 left 09:23 ky1 joined 09:25 kaskal joined 09:33 ky1 left, ky1 joined 09:37 sena_kun joined 09:42 ky1 left 09:43 ky1 joined 09:53 ky1 left, ky1 joined 10:02 ky1 left 10:03 ky1 joined 10:12 ky1 left 10:13 ky1 joined 10:22 ky1 left
SmokeMachine usercontent.irccloud-cdn.com/file/.../image.png 10:22
10:23 ky1 joined
SmokeMachine I think it is starting to look good... 10:35
10:42 ky1 left 10:43 ky1 joined
nahita3882 wow that looks cool, last time I tried to insert a binding statement immediately after a for loop's block starts, I wrote a Slang with NQP/QAST stuff and error messages weren't encouraging on the way 10:47
I wonder if this works/can work on broken code, e.g., I have f().say, as a string, and I would like to detect if the last thing in this expression is a call to "say", or not 10:48
but &f is unknown to the compiler, that's problematic? 10:49
10:52 ky1 left 10:53 ky1 joined 11:03 ky1 left, ky1 joined
SmokeMachine nahita3882: usercontent.irccloud-cdn.com/file/.../image.png 11:10
11:13 ky1 left, ky1 joined
nahita3882 i see... do you imagine any workaround for this 11:16
Python's standard ast module doesn't evaluate so it doesn't complain about undefined names, e.g., import ast; print(ast.parse("f()").body[0].value.func.id) prints "f" 11:18
SmokeMachine I don’t know… :( 11:22
But I don’t think that’s related to evaluation, but in a way to know if that’s a func or a term… 11:25
But using () it maybe could assume that’s a func?!
That maybe would work with a method… 11:26
usercontent.irccloud-cdn.com/file/.../image.png 11:27
if you wand the parent node: usercontent.irccloud-cdn.com/file/.../image.png 11:28
or: usercontent.irccloud-cdn.com/file/.../image.png 11:30
11:33 ky1 left
SmokeMachine (I need an `.node` group to be used instead of RakuAST::Node but it would also include RakuAST not children of RakuAST::Node... 11:33
11:33 ky1 joined
lizmat m: use v6.*; dd .^name for RakuAST::Node.^mro 11:38
camelia "RakuAST::Node"
"Any"
"Mu"
lizmat RakuAST::Node does *not* inherit from RakuAST
SmokeMachine yes, I know... I meant *.starts-with: "RakuAST"... 11:39
lizmat: usercontent.irccloud-cdn.com/file/.../image.png 11:40
11:42 ky1 left
SmokeMachine Probably not including some of those... (like the HTML) 11:42
11:43 ky1 joined 12:02 ky1 left 12:03 ky1 joined 12:12 ky1 left 12:13 ky1 joined 12:23 ky1 left, ky1 joined 12:32 ky1 left 12:33 ky1 joined 12:43 ky1 left, ky1 joined 12:52 ky1 left 12:53 ky1 joined
nahita3882 thanks SmokeMachine, inexistent method call doesn't yield a compile-time error but undefined function name does, so that's why it fails I believe 12:56
13:03 ky1 left, ky1 joined 13:12 ky1 left 13:13 ky1 joined 13:23 ky1 left, ky1 joined 13:33 ky1 left, ky1 joined 13:43 ky1 left, ky1 joined 13:53 ky1 left, ky1 joined
lizmat clickbaits rakudoweekly.blog/2024/10/28/2024-...es-fallen/ 14:02
14:02 ky1 left
antononcube @lizmat As you say, my newest video is really nice. Except for 3-4 bloopers... 14:03
14:04 ky1 joined
lizmat but that's what's really nice about it :-) 14:04
antononcube 🙂 💯
Also, you mentioned "Math::SparseMatrix" twice. (Not a big deal...) 14:05
lizmat that's the correct name, no? 14:11
14:12 ky1 left 14:13 ky1 joined
antononcube Yes, that is the correct name. There is also, "Math::SparseMatrix::Native", but that was last updated 20+ days ago. 14:16
lizmat Aaah... I see what you mean.... fixed now, thanks for the nudge! 14:17
antononcube Is it a good idea to overload + and * for Math::SparseMatrix multiplication? Maybe, those operators are seen as too generic? (They are not exported by default for now.) See code with them here: github.com/antononcube/Raku-Math-S...metic.raku 14:21
Are there any unforeseen side effects by overloading + and * ? For example, slowing down the normal operation on scalars? 14:22
14:22 ky1 left 14:23 ky1 joined
[Coke] remembers he can run the mersenne prime search on this laptop and not notice. 14:31
14:32 ky1 left 14:33 Guest8 joined, ky1 joined 14:37 Guest8 left
lizmat if you export them, it should only affect code in that lexical scope 14:38
[Coke] (mersenne prime search) any interest in a raku team? 14:39
antononcube @Coke I am very interested in "Mersenne Twister", and being able to get the same random numbers from it in different Raku sessions. 14:41
@lizmat Yeah, ok.
14:42 ky1 left 14:43 ky1 joined
More generally, is there an easy way to get random number generation reproducible across different sessions? I have asked that before. It is very inconvenient to make math tests without reproducible random numbers sequences. 14:44
I mean, "system level" random generation, for srand, pick, roll, etc. 14:45
lizmat there's an open issue about it
the problem is, is that the same random generator is used for creating hash keys *and* producing random numbers 14:46
and because of spesh, which runs code whenever it wants to / can (which may create hashes and keys), there's no guarantee that you'll be able to get into the sequence of random numbers that the generator generates at the same location 14:48
antononcube perhaps raku.land/zef:raku-community-modul...th::Random is what you need ? 14:49
antononcube Ok. This means using alternative random number generation like "Math::Random". 14:50
lizmat yes, if you want truly repeatable sequences
antononcube @lizmat I was/am just looking into that package.
I will try out that package soon... 14:52
14:52 ky1 left
lizmat antononcube should you find issues, PRs are welcome as it is a community module 14:53
14:53 ky1 joined
lizmat and we always need caretakers for those :-) 14:53
nahita3882 lizmat can you explain what "spesh" is?
lizmat nahita3882 check out 6guts.wordpress.com/2017/08/06/moa...ring-data/ and follow up blog posts 14:55
nahita3882 thank you 14:56
15:03 ky1 left, ky1 joined
antononcube @lizmat A follow-up question— is it a good idea to overload pick and roll to use “Math::Random” if given a certain adverb? Like, (^100).pick(10):mt. 15:09
15:12 ky1 left 15:13 ky1 joined 15:23 ky1 left, ky1 joined 15:32 ky1 left 15:33 ky1 joined 15:53 ky1 left, ky1 joined 16:03 ky1 left, ky1 joined 16:12 ky1 left 16:13 ky1 joined 16:22 ky1 left 16:23 ky1 joined 16:32 ky1 left 16:33 ky1 joined 16:42 ky1 left 16:43 ky1 joined 16:52 ky1 left 16:53 ky1 joined 17:03 ky1 left, ky1 joined 17:04 bdju left 17:12 ky1 left 17:13 ky1 joined 17:22 bdju joined
librasteve @antononcube - I think that the world will thank you if you can follow the Math::Matrix API (or a subset of it, perhaps with coercers). That overloads + for add scalar only (ie add same rhs to all matrix elems) and * multiply scalar only and . for dot product among a few others. raku.land/github:pierre-vigier/Mat...ply-scalar 17:22
17:23 ky1 left
ab5tract antononcube: that sounds reasonable to me. 17:23
17:24 ky1 joined
ab5tract I might suggest going even more extreme and augmenting the core class methods 17:24
Perhaps based on an import flag (:augment-core) or the like 17:25
antononcube @ab5tract I will consider/try that. 17:27
@librasteve I have used "Math::Matrix", but did know or noticed that it overload the +, * and . . I am surprised about the last one, to be honest, since "dotty infix" is somewhat of a special case and with a certain mind-share. 17:30
17:32 ky1 left
And I was also considering dot as an infix operator... 🙂 17:32
17:33 ky1 joined
@librasteve Actually, after examining "Math::Matrix" README section "Operators" it seems "Math::SparseMatrix" is in agreement with it. (So far.) 17:34
17:34 bdju left 17:42 ky1 left 17:43 dakkar left, ky1 joined 17:44 bdju joined 17:53 ky1 left, ky1 joined 18:03 ky1 left, ky1 joined
librasteve cool - I would say very handy to have coercers (both ways) too ;-) 18:08
18:13 ky1 left, ky1 joined 18:22 ky1 left 18:23 ky1 joined 18:41 [Coke] left 18:42 ky1 left 18:43 ky1 joined
antononcube I prefer those kind of packages to be (very) decoupled. At this point, "Math::SparseMatrix" objects can be turned into "Math::Matrix" objects by using the .Array method. I.e. Math::Matrix.new($smat.Array). 18:43
Should work the other way too. 18:44
18:46 oodani left 18:52 ky1 left 18:53 ky1 joined 18:54 oodani joined 19:02 ky1 left 19:03 ky1 joined 19:13 ky1 left, ky1 joined 19:17 Xliff joined
Xliff \o 19:17
19:19 Aedil left 19:23 ky1 left, ky1 joined
antononcube (⌐■_■) 19:30
Xliff Anyone have any cool RakuAST examples, yet? 19:32
lizmat github.com/rakudo/rakudo/blob/main...er.rakumod 19:33
19:33 ky1 left, ky1 joined
lizmat Buddy! media.hachyderm.io/media_attachmen...2e4e97.jpg 19:35
oops ww
librasteve lol 19:40
is our sub another way to say sub blah is export?
19:41 [Coke] joined
oh yeah - opposite of my class {} 19:41
19:43 ky1 left, ky1 joined
@antononcube ... please envision a world where consumer of your module want to do something with a Matrix ... with a coercer, they can say something like `multi(Math::Matrix() $m) { ... } and that'll be able to take both a random and a sparse regardless ... 19:44
Xliff lizmat: Nice dog...
19:53 ky1 left, ky1 joined
librasteve dog++ 19:59
20:02 ky1 left 20:03 ky1 joined
antononcube I think “Math::Matrix” is fairly heavy package, which has not been developed lately. I would make an “optional” dependency on it — if it is installed, some of the “Math::SparseMatrix” methods can use it. 20:10
20:10 Xliff left
librasteve i agree ... it's too intese for my taste 20:11
intense
20:13 ky1 left, ky1 joined
antononcube I was considering to implement named rows and columns for “Math::Matrix” — this a way look into that package, but now that is of a much lesser priority. 20:19
20:22 ky1 left 20:23 ky1 joined 20:30 sena_kun left, sena_kun joined 20:43 ky1 left, ky1 joined
How easy it is to automatically create web apps similar to the user interface if of chatgpt.com ? Basically, a few selections have to be done: (i) service provided, (ii) LLM model, (iii) temperature, (iv) prompt, and have a "main panel" for the chat with LLM. 20:44
Ideally, this web apps are created / generated via CLI with minimal setups. For example, just giving a prompt and/or LLM access configuration. 20:46
20:49 sena_kun left 20:50 sena_kun joined 20:52 ky1 left 20:53 ky1 joined 21:03 ky1 left, ky1 joined 21:13 ky1 left, ky1 joined
SmokeMachine .tell Xliff I think this a simple, yet cool example: usercontent.irccloud-cdn.com/file/.../image.png 21:22
tellable6 SmokeMachine, I'll pass your message to Xliff
21:23 ky1 left, ky1 joined
ab5tract Xliff: all of the greatest hacks I've seen from RakuAST are in the RakuAST implementations. Here's all it takes to implement the `handles` trait: github.com/rakudo/rakudo/blob/76f6...kumod#L298 21:36
tellable6 ab5tract, I'll pass your message to Xliff
21:42 ky1 left 21:43 ky1 joined
ab5tract Xliff: or this new and improved version of FIRST which works in any block (not just routines) and which returns the value of the expression (which < v6.e FIRST does not) 21:48
tellable6 ab5tract, I'll pass your message to Xliff
ab5tract Xliff: github.com/rakudo/rakudo/blob/76f6...kumod#L696
tellable6 ab5tract, I'll pass your message to Xliff
21:53 ky1 left, ky1 joined 22:03 ky1 left, guifa joined, ky1 joined 22:12 ky1 left 22:13 ky1 joined 22:23 ky1 left, ky1 joined 22:32 ky1 left 22:33 ky1 joined 22:42 ky1 left 22:43 ky1 joined 22:47 Sgeo joined 22:52 ky1 left 22:53 Altai-man joined, ky1 joined 22:54 sena_kun left, pierrot left, pierrot joined 23:02 ky1 left 23:03 ky1 joined 23:13 ky1 left, ky1 joined 23:23 ky1 left, ky1 joined 23:25 kjp left 23:27 kjp joined 23:42 ky1 left 23:43 ky1 joined 23:47 kjp left 23:48 kjp joined 23:49 Altai-man left 23:52 ky1 left 23:53 ky1 joined