🦋 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 inspection is getting closer to beta. If you're a beginner, you can also check out the #raku-beginner channel!
Set by lizmat on 25 August 2021.
00:04 linkable6 left, evalable6 left 00:05 linkable6 joined 00:07 reportable6 left 01:05 evalable6 joined 01:51 kjp left 01:54 kjp joined 02:02 razetime joined 02:18 seednode99 joined 02:28 seednode99 left, seednode99 joined 02:46 seednode99 left 02:47 seednode99 joined 02:51 frost joined 03:10 reportable6 joined 03:24 Kaiepi left 03:25 Kaiepi joined 03:29 dynamite left 03:32 dynamite joined 03:51 razetime left 04:21 tonyo1 is now known as tonyo 04:34 kjp left 04:36 kjp joined 04:43 frost left 05:02 Sgeo joined 05:03 Sgeo_ left 05:04 frost joined 05:41 frost left 06:04 frost joined 06:05 dynamite left 06:08 reportable6 left 06:10 reportable6 joined 06:28 qeqeqw joined 07:00 ufobat joined 07:10 frost left 07:19 seednode99 left, seednode99 joined 07:29 Sgeo left 07:34 japhb left 07:36 japhb joined 07:37 razetime joined 08:23 frost joined 08:30 mykhal_ is now known as mykhal 08:33 abraxxa joined 08:47 abraxxa left, abraxxa joined 08:58 squashable6 left, hasrthur joined 09:00 sienet_ja_LSD[m] left 09:06 tejr joined 09:09 dakkar joined 09:11 frost left 09:34 razetime left 09:35 razetime joined 10:00 squashable6 joined 10:40 razetime left 10:48 [Coke] left 10:54 frost joined 11:02 qeqeqw left 11:12 Geth left 11:19 frost left 11:51 dynamite joined 12:02 Geth joined 12:05 [Coke] joined 12:06 Geth left, Geth joined 12:07 reportable6 left 12:12 kjp left 12:14 kjp joined 13:06 jercos_ is now known as jercos 13:09 reportable6 joined 13:32 qeqeqw joined 13:35 razetime joined 14:12 morte_ joined, squashable6 left 14:46 kylese joined 14:51 dynamite left 14:54 discord-raku-bot left, discord-raku-bot joined 15:04 frost joined 15:05 discord-raku-bot left 15:06 dynamite joined 15:08 discord-raku-bot joined 15:11 Sgeo joined 15:12 discord-raku-bot left 15:13 discord-raku-bot joined 15:34 qeqeqw left 15:35 frost left 15:44 morte_ left 15:45 morte_ joined 15:50 morte_ left 15:58 MasterDuke left 16:14 MasterDuke joined, squashable6 joined
guifa re some of the discussion on opreator overloading, reading the synopses for something else I noticed something really interesting 16:42
it should be possible to do 16:43
multi sub GLOBAL::infix:<+> (Str, Str) { … }
16:47 Tiriftoj joined
guifa but it throws X::Syntax::Extension::Category, something not done for other globals (although those multis aren't actually installed AFAICT) 16:48
El_Che lizmat, *: I requested the Twitter Raku community before someone else squats it. It's a new Twitter feature 16:51
lizmat El_Che++
URL ?
El_Che none, until approved 16:52
lizmat I see... ok
El_Che here is the perl one to keep you busy: twitter.com/i/communities/1471579416216145924
:P
lizmat no, thank you :-)
El_Che If approved, I'll give active people moderator status and pass it on if desired 16:53
lizmat thanks!
Tiriftoj Hello! Is there a nice way to delegate all methods which haven’t been overridden locally in a class to another object? The closest I got was ‘has $.object handles *’, but the Whatever also stands for any inherited methods, which I would like to exclude from the dispatch. 16:57
guifa sounds like the job for a trait 16:58
[Coke] kind of like FALLBACK? 17:01
you could have a FALLBACK that re-dispatched to the handler.
Tiriftoj guifa: Any trait in particular? :o 17:02
guifa Tiriftoj: it'd be a custom one. Basically though, question one would be creating a list of the methods you want redispatched. Then you'd make a trait that adds a fallback (or even installs local methods) that redispatch to some object (which you might define via an attribute) 17:03
Tiriftoj [Coke]: Oh right, I can use a HyperWhatever for that. I’ll see if that takes precedence…! 17:04
17:14 razetime left 17:26 abraxxa left
ugexe m: class MyBar { method bar { 42 }; method dupe { 1 }; }; class MyClass { has $.object handles MyBar; method dupe { 69 } }; my $obj = MyClass.new(object => MyBar.new); say $obj.bar; say $obj.dup 17:27
camelia 42
No such method 'dup' for invocant of type 'MyClass'. Did you mean any
of these: 'DUMP', 'dupe'?
in block <unit> at <tmp> line 1
ugexe m: class MyBar { method bar { 42 }; method dupe { 1 }; }; class MyClass { has $.object handles MyBar; method dupe { 69 } }; my $obj = MyClass.new(object => MyBar.new); say $obj.bar; say $obj.dupe
camelia 42
69
ugexe has $.object handles Some::Class 17:29
guifa ugexe++ I didn't realize handles would take a class that way 17:30
And here I was trying to do that with a trait ha (although TIL there's a huge difference in saying class Foo is traitbar { … } and class Foo { …; also is traitbar } ) 17:31
Is there any way to, uh, put a trait on a trait so it's done later rather than sooner?
Tiriftoj [Coke]: Okay, so it looks like inheritance takes priority over FALLBACK for ‘handles’… or at least this didn’t work for me: 17:32
m: class A { method m { say “A!” } }; class B { method m { say “B!” } }; class Z is A { has $.b handles ** = B.new(); method FALLBACK ($name, *@args) { say “Z!” } }; Z.new.m;
camelia A!
17:34 dakkar left
Tiriftoj (I made it say “Z!” to show that A’s inherited method is preferred to local FALLBACK; the end goal for me would be to call B’s method without explicitly specifying I want $.b to handle “m”.) 17:34
Inherited methods are also preferred to delegation by explicit classes, it seems: 17:38
m: class A { method m { say “A!” } }; class B { method m { say “B!” } }; class Z is A { has $.b handles A = B.new(); }; Z.new.m;
camelia A!
17:40 jjido joined
Tiriftoj guifa: I had no idea custom traits were a thing. The idea seems sort of awing, but I’ll read up on them! :-) 17:42
guifa basically, a custom trait gives you at compile time a reference to the class / method / whstever, and you can call methods on it to set all sorts of stuff up
basically, a custom trait gives you at compile time a reference to the class / method / whstever, and you can call methods on it to set all sorts of stuff up 17:43
Tiriftoj pardon the crazy URL but 17:44
tio.run/##dZLRTsIwFIbv9xQHQrLNQBM1...Qzs1130vUb
JNHIoockHZJopGl@AA
17:47 ph88 joined
ph88 where can i find the raku compiler source code ? 17:47
i looked on github and couldn't figure out which repository it is
guifa github.com/rakudo/rakudo 17:48
ph88 thx 18:05
18:06 morte_ joined, reportable6 left
ph88 can rakudo be run as a single binary or does it need a bunch of files ? 18:06
guifa Not by default. I'm sure there's a way to compile into a single one, but I'm not good with that type of stuff. I'm sure someone experienced in C could figure it out though 18:16
El_Che ph88: it works like perl, python or ruby 18:17
sjn ph88: rakudo requires a bunch of files; at minimum the program and the raku VM and it's support libraries. I'm pretty sure noone has tried making something that produces a single executable file...
El_Che sjn: there was an summer of code intern that got pretty far iirc 18:18
sjn strace ./raku -e '1' 2>&1 | grep open|wc -l 18:19
...gives 48 calls to openat()
most are precompiled libraries 18:20
ph88 does someone know a good video or so to tell what is good about raku ?
sjn ph88: www.youtube.com/watch?v=LEFVQaSgJ60 is a decent intro 18:22
ph88: you might also appreciate replies to similar questions as your's on www.reddit.com/r/rakulang/ 18:23
ph88 thanks 18:26
Tiriftoj guifa: I’ll have to spend a while with the code to feel comfortable with it, but I see it works for the intended purpose. Thanks a lot! 18:27
ph88 are more people using raku than perl for any arbitrary metric ? 18:28
18:29 kylese left
sjn Raku is still a small language, but growing. Perl has a much larger install base, so whatever you compare with, it'll pretty much have more users in any metric. 18:30
ph88: but if you look at the language, you'll see that it solves a *lot* of issues that other languages still struggle with, so when you're considering tools for new development, you'll do yourself quite the favor by considering Raku 18:32
18:32 lichtkind joined
sjn So let's say "Raku is more future-focused", which makes it not particularly good at scoring high marks on "past-focused" questions, like your's 18:33
ph88: if your most important metric for a language is "popularity", then I'm sad to say Raku doesn't quite measure up in this regard (yet :) 18:36
ph88 thanks sjn 18:45
18:47 jjido left 19:02 jjido joined 19:07 reportable6 joined 19:25 mexen left
ph88 anyone know of some simple benchmarks comparing raku to js, python and php ? 19:35
Nemokosch 😬
19:42 morte_ left 19:44 morte_ joined 19:50 hasrthur left 20:05 jjido left 20:16 Kaiepi left 20:17 Kaiepi joined, Kaiepi left 20:18 Kaiepi joined 20:23 euandreh left 20:25 euandreh joined 20:35 hasrthur joined 20:38 hasrthur left, hasrthur joined 21:04 MasterDuke left 21:05 Tiriftoj left
[Coke] ph88: best bet is to google, I don't think we have a dedicated raku site. 21:13
(er, dedicated to benchmarks)
21:21 MasterDuke joined 21:41 GreaseMonkey left 21:42 greaser|q joined 22:00 ufobat left 22:15 Tiriftoj joined 22:19 Tiriftoj left 22:27 lichtkind left 23:06 perlmaros left, perlmaros joined 23:07 xkr47 left 23:09 xkr47 joined 23:10 swim joined 23:13 swim left 23:23 hasrthur left 23:38 morte_ left 23:40 greaser|q left, greaser|q joined, greaser|q is now known as GreaseMonkey