🦋 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:06 reportable6 left 00:08 reportable6 joined 00:21 Sgeo left 00:23 Sgeo joined 00:30 silug joined
Xliff How do I get the "Rakoon" tag on reddit? 01:03
01:05 frost joined
uzl[m] .tell Xliff Go to r/rakulang and in the sidebar to the right, click "edit" and select one of the flairs 01:14
tellable6 uzl[m], I'll pass your message to Xliff
guifa Xliff let me know if you have any trouble with it, I'm one of the mods 01:23
guifa just changed raiph from Experienced to Wise Elder because… really? Why did they choose the middle tier?! 01:25
01:31 silug left 01:33 silug joined 01:50 ocomporto joined 02:06 guifa left
jdv raiph is insane 02:22
02:54 Kaiepi left 03:05 guifa joined 03:21 Guest35 left
moon-child jdv: many wise elders are 03:22
jdv :) 03:36
03:55 Sankalp left 04:03 Sankalp joined 04:05 bigdata left 04:13 [Coke] joined 04:17 [Coke] left 04:19 [Coke] joined 04:29 [Coke] left, guifa_ joined 04:31 [Coke] joined, guifa left 04:38 Kaiepi joined 04:50 xinming left 04:52 xinming joined 05:02 [Coke] left 05:03 [Coke] joined 05:08 [Coke] left 05:11 silug left 06:05 mexen joined 06:06 reportable6 left 06:09 reportable6 joined 06:29 silug joined 06:31 abraxxa joined 06:38 abraxxa left 06:39 abraxxa joined 07:01 [Coke] joined 07:03 Sgeo left 07:07 [Coke] left 07:18 [Coke] joined 07:31 [Coke] left 07:32 [Coke] joined 07:41 [Coke] left 07:57 [Coke] joined 08:09 dakkar joined 08:10 [Coke] left 08:39 lichtkind_ joined 09:11 [Coke] joined 09:23 [Coke] left 09:24 [Coke] joined 09:32 TempIRCLogger left 09:35 TempIRCLogger joined 09:48 [Coke] left 09:50 [Coke] joined 10:01 [Coke] left 10:15 sena_kun left 10:22 wingfold joined 10:24 sena_kun joined 10:56 linkable6 left 10:58 linkable6 joined 11:04 [Coke] joined 11:21 wingfold left 11:22 [Coke] left 11:44 jrjsmrtn left 11:48 wingfold joined 11:54 ocomporto left 12:06 reportable6 left 12:08 reportable6 joined 12:17 Sankalp left
Geth ecosystem: c9ac84ce1f | (Elizabeth Mattijsen)++ | META.list
Freeze Inline::Brainfuck

While we move it to the zef ecosystem
12:22 Sankalp joined
Geth ecosystem: b5acf1b362 | (Elizabeth Mattijsen)++ | META.list
Remove Lingua::Conjunction

It now lives in the zef ecosystem
ecosystem: fc748e1c60 | (Elizabeth Mattijsen)++ | META.list
Freeze Benchy

While we move it to the zef ecosystem
13:09 Kaiepi left 13:13 Guest35 joined 13:30 morte_ joined 13:31 morte_ left 14:07 morte_ joined 14:09 bigdata joined 15:04 Sgeo joined 15:07 abraxxa left 15:09 frost left 15:56 robbob joined
robbob Hi 15:57
Is Raku an Esolang? 15:58
El_Che no 16:00
robbob What's the use of it? 16:19
guifa_ What's the use of any programming language? lol 16:24
16:28 morte_ left 16:30 morte_ joined 16:45 dakkar left 16:48 perlbot left, simcop2387_ joined
robbob Well, I suppose that's generally a good question, but there are languages with certain uses. For example, shell is good for quick scripts, C is good for lower-level programs and things that would be worth the writing time to be fast. 16:49
16:49 perlbot joined, simcop2387 left, simcop2387_ is now known as simcop2387 16:55 mexen left 16:57 perlbot left 16:58 perlbot joined
lizmat robbob: I guess Raku somewhere between those two, especially if you value your developer's time 17:00
robbob Okay, that's helpful to know, thanks! So it gives you good control, without too much complication? 17:01
lizmat not sure what you mean with "good control" ? 17:06
17:14 wingfold left
Xliff robbob: I would say "Yes" to this. 17:22
tellable6 2022-05-19T01:14:32Z #raku <uzl[m]> Xliff Go to r/rakulang and in the sidebar to the right, click "edit" and select one of the flairs
17:22 robbob left
Voldenet >shell is good for 17:23
in general shell is great for shooting yourself in the foot 17:24
17:26 jrjsmrtn joined
Nemokosch not even that, to be honest 17:29
Shell is good for giving you a headache
Actually I don't know a pragmatic reason why all POSIX compatible shell dialects have to be this bad 17:30
Voldenet they're always skip edge cases and only solve the general case well 17:31
skipping, even
Nemokosch but like even the syntax is a big mess 17:33
with the fake functions and fake control structures
17:34 morte_ left
and not even faking data structures, the best you can get is an associative array of strings and then you must feel really thankful 17:34
Voldenet syntax is not that horrible if you use it on files 17:37
17:39 guifa_ left
Nemokosch I'm not sure what "use it on files" should mean 17:39
17:39 guifa joined
Voldenet something like: for i in *.txt ; do cp $i /mnt/backup/$i ; done 17:39
ofc, it gets incredibly hairy if you have spaces in filenames… 17:40
Nemokosch that's just one thing 17:41
but why wouldn't it not even a terribly difficult thing do solve, you just gotta know the difference between $foo and "$foo"
Voldenet except every programming language does the right thing
s/every/most/ 17:42
17:42 morte_ joined
Nemokosch but tbh I don't get why wouldn't that be horrible syntax, with the ; do and ; done 17:43
tonyo you guys sound like you're talking about bash and not shells in general 17:44
Voldenet zsh fans have joined the chat :D
Nemokosch I'm not saying what $foo does is always handy - in fact, it's more often not handy than it is 17:45
but that's hardly an anomaly in my eyes, among the overall behavior of shell
tonyo i use bash
Nemokosch I said POSIX compatible shell
tonyo and dislike zsh : )
Nemokosch in fact, Bash already extends "/bin/sh" in several ways 17:46
tonyo nushell, for instance, is different
Voldenet fish has saner `for` syntax too: for i in * ; echo $i ; end 17:47
Nemokosch and if you don't really aim for POSIX compatibility - why not just use an actual programming language?
there are loads of perl scripts in the software we are working on, for example
tonyo fish copies bash in a few irritating ways
Nemokosch Perl is for all intents and purposes an actual programming language, not yet another string parsing madness with fake control structures
Voldenet perl has at least some weird defaults 17:48
error handling is weird too
tonyo in fish: `echo "test '"$(echo -n)"'"
outputs nothing 17:49
Voldenet '"'"' is a well-known bash idiom for escaping ' character ;) 17:53
tbh. writing any bash-level things is raku is painless 17:56
Juerd In bash I prefer '\'' 18:06
'"'"' gives me a headache when I try to see what's what. 18:07
18:07 reportable6 left, reportable6 joined
Xliff I'd switch to fish if it supported powerline shell and rakubrew 18:08
Voldenet in raku you can confidently say `for 'something'.IO.dir { run("thing", $_); }` and it will just work (and die when thing fails), without any tricks involved 18:16
similar thing in shell is deceptively hard to get right
Geth ecosystem: 171449a87b | (Elizabeth Mattijsen)++ | META.list
Freeze WhereList

While it is being moved to the zef ecosystem
Nemokosch Perl defaults seem sane when you compare it against anything with "shell" in its name tbh 18:20
tbh if I want to do any automation that involves at least one control structure, I go for Raku 18:22
interfacing with shell is simple and effective, you get decent output with minimal regex processing
18:24 p6steve joined 18:40 hhcryfqnut joined
hhcryfqnut Hey lizmat do you have any opinions/thoughts on "tilde communities"? Recently became aware of tildeverse.org/ and places like sdf.org and remembered one of your conference talks where you talk about PLATO www.youtube.com/watch?v=MXIJjdNdjjk (great talk, btw) 18:43
18:44 morte_ left
lizmat hhcryfqnut must admit I don't have a lot of thoughts about that :-) 18:45
18:45 Xliff left 18:48 morte_ joined
hhcryfqnut ha! that's ok. wasn't sure if you had found something fun like PLATO and wanted to share. It's a trip down memory lane, in some ways, exploring these tilde communities. it reminds me of the web before everyone started having conversations/posting stuff in just a few places (places that are desperate to make money without having "users" pay) 18:49
18:50 abraxxa-home joined
lizmat PLATO ended for me in 1981 or so... so that's quite a long way down memory lane 18:53
hhcryfqnut *checks when the movie WarGames came out* 18:55
yep. that's a long time ago. lol
lizmat I did visit www.wired.com/1997/03/platofest-to...community/ and it was fun seeing old friends, some of which I'd never seen IRL :-)
18:56 Xliff joined
lizmat BTW, Brian Dear's book did get published: www.amazon.com/The-Friendly-Orange...B0777XSZKW 18:58
recommended if you're interested in PLATO and/or early online communities 18:59
19:04 guifa left
hhcryfqnut I'll read it! Thanks! 19:04
19:21 morte_ left 19:22 Sankalp left 19:23 morte_ joined, n1to joined 19:29 rypervenche_ left 19:48 hhcryfqnut left 20:04 morte_ left 20:08 Sankalp joined 20:11 morte_ joined 20:26 linkable6 left 20:28 linkable6 joined
p6steve wonders if raku MOARVM implements Copy On Write (COW) semantics 20:51
20:52 [Coke] joined 20:54 morte_ left 21:00 guifa joined
gfldex p6steve: Values are immutable, so no write is allowed. Values will be shared where ever possible. 21:03
m: my $a = "abc"; my $b = "abc"; say ($a.WHERE, $b.WHERE)».fmt('%X'); 21:04
camelia (5FF046D4BA8 5FF046D4BA8)
21:23 phogg left 21:24 Kaiepi joined 21:33 bigdata left 21:39 phogg joined
Voldenet it's more obvious when you see most variables as pointers 21:47
21:49 phogg left, phogg joined 21:50 morte_ joined
Voldenet my $a = 123; my $b = $a; # int symbol = 3; int *a = &symbol; int *b = a; 21:52
21:52 londoed left 21:53 londoed joined 21:57 morte_ left 22:09 n1to left 22:18 discord-raku-bot left 22:19 discord-raku-bot joined
guifa values will be shared when possible but that's not a guarantee AFAIK (it just happens to be that's how Rakudo does it) 22:22
this can actually cause problems 22:23
m: role B-Role {;}; my $a = 5; my $b = 5; $b does B-Role; say $a.WHAT; 22:24
camelia (Int+{B-Role})
Voldenet …doesn't that mean that using 'but' is safer fox mixins? 22:33
m: role B-Role {;}; my $a = 5; my $b = 5; $b = $b but B-Role; say $a.WHAT;
camelia (Int)
guifa Voldenet: yes, but (lol) `but` creates a copy, whereas `does` mixes in in place 22:41
Voldenet m: role B-Role {;}; my Int $b = 5; $b = $b + 1; $b does B-Role; say 6.WHAT; 22:44
camelia (Int+{B-Role})
Voldenet Huh…
22:46 lichtkind_ left
Voldenet m: role B-Role {;}; my Int $b = 15; $b = $b + 1; $b does B-Role; say 16.WHAT; 22:48
camelia (Int)
22:50 Kaiepi left 22:54 Kaiepi joined
japhb Voldenet: Tripping over the small Int cache? 23:06
Voldenet m: for ^16 { $_ does role :: { method CALL-ME { self + 1 } } }; say 10()()(); 23:09
camelia 13
Voldenet it's actually quite fun thing
i'll use it in my code
23:09 abraxxa-home left
Voldenet m: for ^16 { $_ does role :: { method ACCEPTS($x) { False } } }; my $x = 11; say 11 ~~ $x 23:13
camelia False
Voldenet I'll use this if I ever need to make someone mad 23:15
23:39 simcop2387 left 23:42 simcop2387 joined 23:55 Kaiepi left