🦋 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:02 reportable6 left 00:15 frost joined 01:05 reportable6 joined 01:18 charsbar_ joined 01:19 charsbar left, charsbar_ is now known as charsbar 01:21 ggoebel joined 01:26 ggoebel left 02:26 unicodable6 left, evalable6 left, statisfiable6 left, linkable6 left, nativecallable6 left, releasable6 left, quotable6 left, coverable6 left, sourceable6 left, benchable6 left, squashable6 left, bisectable6 left, bloatable6 left, reportable6 left, greppable6 left, committable6 left, tellable6 left, shareable6 left, notable6 left 02:27 unicodable6 joined, nativecallable6 joined, linkable6 joined, shareable6 joined, coverable6 joined, committable6 joined 02:28 bloatable6 joined, quotable6 joined 02:29 benchable6 joined 02:35 leont left 02:37 leont joined 03:01 frost left 03:05 frost joined 03:26 greppable6 joined 03:28 tellable6 joined 03:29 evalable6 joined, statisfiable6 joined
mfiano Hello again. 03:44
I would like to get a better idea of what people are using Raku for these days. I haven't looked at Perl in about 20 years, and historically it has been mostly used for text processing and cgi scripts (which I suppose is a subset of the former). I am told Raku is more suitable to other tasks, and while I know it is a general-purpose language, I'm still curious what members of the community are 03:47
actually using it for these days, outside of text processing, parsers, and the like.
04:04 monkey_ joined 04:15 monkey_ left
moon-child mfiano: you mentioned earlier gl; I made a very basic interface to it here github.com/moon-chilled/glarkum 04:25
04:26 reportable6 joined
mfiano Thanks moon-child 04:26
moon-child be advised it takes a very long time to compile 04:27
mfiano Shouldn't be a problem is parallel compilation is possible
if*
moon-child well, it's a single translation unit sooo
but there is caching
04:27 squashable6 joined
moon-child timo: my recollection is vulkan structs are not too bad from an abi perspective. Always passed/returned by pointer, so no problem that dyncall can't handle value structs 04:28
04:28 bisectable6 joined
mfiano I've mostly just been trying to read about Raku and success stories for now. 04:29
04:29 releasable6 joined
mfiano Ordered a book. For now reading official docs. Still hard to find what people are using it for. Seems mostly just exploratory programming and parsers. 04:29
and web apps with Cro 04:30
moon-child 6guts.wordpress.com/2021/09/29/the...m-is-here/ mentions its use in 'Agrammon, an application calculating farming emissions' 04:32
mfiano Wonder how it'd do for declarative, data-driven tasks, like a lot of traditional AI. Probably best to stick to CL for that ;) 04:33
moon-child there are no symbols, which is a shame. But you can do interning yourself. Beyond that you're probably mostly fine 04:54
mfiano No symbols...hmm, odd. 04:55
05:26 notable6 joined 05:28 tejr left, tejr joined 05:33 berber44 joined 05:39 gordonfish- joined 05:40 gordonfish left 05:55 berber44 left 06:02 reportable6 left 06:04 reportable6 joined 07:04 reportable6 left, quotable6 left, statisfiable6 left, linkable6 left, nativecallable6 left, releasable6 left, benchable6 left, bloatable6 left, shareable6 left, bisectable6 left, coverable6 left, committable6 left, tellable6 left, squashable6 left, evalable6 left, unicodable6 left, greppable6 left, notable6 left, nativecallable6 joined, benchable6 joined 07:05 unicodable6 joined 07:06 tellable6 joined, bisectable6 joined, releasable6 joined, notable6 joined, squashable6 joined 07:07 linkable6 joined 07:27 sourceable6 joined
Nemokosch what are "symbols"? 07:45
moon-child a symbol is an identifier. Given two symbols you may ask whether they identify the same thing (i.e. compare them). That's it 07:47
frequently symbols are used to represent variable and function names in code. Raku uses strings instead
mfiano THe thing that a string maps to in a symbol table of a compiler. Lisp just exposes these as a primitive.
moon-child notably symbols are interned, where strings are not. So you can use === to compare them in constant time 07:48
Nemokosch I don't quite get the use case 07:55
moon-child @Nemokosch you can think of it a bit like the dynamic typing version of enums 08:03
08:04 bloatable6 joined
El_Che moon-child: symbols is something I dislike about Ruby 08:04
08:04 committable6 joined
moon-child :/ 08:04
08:05 greppable6 joined, monochromec joined
monochromec Hi! Who's the right person to contact as a dev advocate or community liaison for Raku? 08:06
Nemokosch moon-child: how is it useful to make it compile time, then? 08:13
moon-child how not? 08:14
Nemokosch I mean, could you give an example for using it compile time? lol 08:17
because there are constants in Raku, it's just a matter of implementation to make them evaluated compile-time in a switch-like scenario 08:18
moon-child hm, I may have misinterpreted your initial question. Can you rephrase/elaborate?
Nemokosch No, not really 08:21
I genuinely don't get what these "symbols" are when it really sounds like they are just typeless constants 08:22
moon-child 'typeless constants' exactly
Nemokosch like IterationEnd for the matter
moon-child but you do not need to explicitly declare them. You can just use them as you see fit 08:23
Nemokosch What does that mean? How would either a person or a compiler know they are something?
It sounds more weird than useful, to not need to declare them 08:24
moon-child they are not _anything_, by themselves. The only way to 'get' any information out of a symbol is to compare it to another symbol and see if they are the same
mfiano Are you sure about that? 08:25
Nemokosch This sounds like IterationEnd but without declaration...
mfiano They are objects, like everything else in CL. They have 5 fields, such as the value bound to it. 08:26
moon-child mfiano: sure, in cl you have symbol-package and symbol-name and such, but those are incidental, not The Point
mfiano Fair enough.
moon-child and, talking about symbols as an abstract concept, not specifically as in cl
mfiano Ok, then pick up any compiler theory book and be done with it. 08:27
They are an integral part
moon-child fair enough
08:27 monochromec left
Nemokosch In Javascript, Symbols absolutely don't mean "typeless constants" 08:29
MasterDuke .tell monochromec you could try asking in #raku-steering-council
tellable6 MasterDuke, I'll pass your message to monochromec
Nemokosch and in Raku, there _are_ "typeless constants"
09:04 quotable6 joined 09:05 shareable6 joined 09:06 coverable6 joined 09:07 evalable6 joined
lizmat .tell monochromec sending an email to [email@hidden.address] would be the best cause of action, I think 09:07
.tell monochromec sending an email to rsc@raku.org would be the best cause of action, I think
tellable6 lizmat, I'll pass your message to monochromec
09:23 monochromec joined 09:28 RaycatWhoDat left 09:29 RaycatWhoDat joined 09:41 patrickb joined 09:56 monochromec left 09:57 monochromec joined 10:04 statisfiable6 joined 10:07 reportable6 joined 10:42 Sgeo left 11:23 ggoebel joined
RaycatWhoDat mfiano: re: "what is Raku being used for", it might not be anything fancy or overly interesting but I use it in my day-to-day work. Usually, I want to write a shell script or some sort of file/directory watcher or similar. 11:24
Now you may say that "lol, just learn shell scripting properly" and you'd be right 11:25
But, in my head, pound-for-pound, Raku provides the smoothest development experience to a point where it feels like cheating sometimes 11:26
mfiano I see, thanks for your input. 11:27
11:31 monochromec left 11:32 monochromec joined
RaycatWhoDat mfiano: gist.github.com/RayMPerry/f2e1df44...d6170c2db8 11:33
mfiano I won't "lol" either. shell scripting is the worst, and I say that with 30 years of still banging my head over trivial tasks 11:34
I haven't tried raku out yet, been mostly reading still. i would definitely consider replacing some sh and lisp scripts with something like that. my only concern would be warmup time; most shell scripts are short-lived processes so waiting 20 seconds for it to even begin would be worthless. 11:37
mfiano has no idea what startup time is like 11:38
tbrowder mfiano: i'm with RaycatWhoDat, i have used Perl since 1993 for both text processing as well as a wrapper for heavy duty numerical processing prof 11:39
mfiano Nice, yes I figured that would be most of you.
I am mostly an AI / data visualization guy. 11:40
tbrowder *processing pgms and postprocessing reams of data. Raku is the Perl i wish i had when i was working for a living.
RaycatWhoDat Oh, yeah. Raku can definitely chug if you start using a bunch of the arcane magick constructs in the language but, for 95% of what you're doing, Raku is ready to go in like 0.5 secs.
Give or take. I haven't measured a damn thing.
tbrowder and when i need a serious bash prog, i use raku instead 11:41
mfiano Are there any interesting programs written in Raku? Like something that you might see on HN or something?
tbrowder and i use raku for cgi progs, too
RaycatWhoDat The biggest one *might* be Red 11:42
I need to double-check, one second
tbrowder find jnthn's lecture on his BIG prog for one of the European gov agencies
now that's heavy duty use of Raku 11:43
RaycatWhoDat Oh, yeah, yeah
mfiano link? 11:45
RaycatWhoDat tbrowder: He's done so many, I've forgotten which year it was. Do you remember?
tbrowder er, no, but i'll see if i can duckduckgo it... 11:46
MasterDuke raku-advent.blog/2020/12/20/day-20...-the-wild/ and github.com/oposs/agrammon 11:49
tbrowder see jnthn.net for all his public slides and talks. he has many on composable concurrency and one of those may be it...
yeah, that ^^^ one, too 11:51
RaycatWhoDat MasterDuke++
mfiano Ah cool 11:52
11:54 ggoebel left 12:02 reportable6 left 12:03 berber44 joined 12:06 monochromec left 12:10 berber44 left
Anton Antonov @mfiano: re: "what is Raku being used for" -- I use Raku to make Conversational Agents (CA) for computational workflows. At this point most of them are not CAs, but "single-line interpreters", but I do use them to generate Data Science or Machine Learning workflows for different languages: Mathematica, Python, R. 12:31
@mifiano This recent presentation of mine, "Raku for prediction", goes into more details: conf.raku.org/talk/157 . 12:35
avuserow I wrote a simple password manager in raku which I use daily. Also writing a "network jukebox", for controlling speakers remotely via a web interface with a shared queue and music library from multiple users. Once upon a time, I did some video game modding using raku (replacing sounds, textures, etc). 12:36
Anton Antonov '@' ~ discord-user(329084082162106371.Str) Is in PAUSE? Or GitHub? 12:37
avuserow Soon :) 12:38
Which one are you most interested in? 12:39
Anton Antonov '@' ~ discord-user(329084082162106371.Str) Ah, sorry... The password managing one.
@RaycatWhoDat Do you have blog posts and/or videos explaining your approach to make "shell scripts"? 12:47
avuserow '@' ~ discord-user(694526400488669234.Str) , okay I'll see what I can do. it's nothing super involved, just a CLI in the spirit of passwordstore.org - but not GPG and not bash 🙂 12:56
13:03 keutoi joined, reportable6 joined 13:30 sena_kun joined 13:33 Altai-man left
'@' ~ discord-user(694526400488669234.Str) - github.com/avuserow/saiph - quick release after finishing off a few TODOs. It installs and still reads my local database, so it may even work for other people too 🙂 13:37
perryprog looks like discord-raku-bot is having a moment 13:38
avuserow The integration tests don't work any longer since the format changed. Haven't really thought about how to fix it.
perryprog Anyone know who's it maintainer? 13:39
its*
avuserow looks like it's confused when someone is at-mentioned on the discord side 13:40
perryprog yeah
MasterDuke gfldex maybe? 13:41
avuserow I dropped a note in discord's <#538407879980482562> 13:42
ha, and that got formatted weirdly too, naturally. the "general" channel is what I meant.
perryprog see if you just used irc we wouldn't have these problems ;)
avuserow my computer running my IRC client died 13:43
perryprog well, heck
avuserow so I'm using discord as my bouncer 🙂
gfldex is looking into it
perryprog Thanks!
Anton Antonov '@' ~ discord-user(329084082162106371.Str) What is Go used for in your "saiph" package? (I am too lazy to read and comprehend the code...)
avuserow the golang code is just a parallel implementation to dump one of the encrypted files. still requires the password, just helped make sure I wasn't silently using the library wrong 13:44
(originally the code was using gpg so you could just `gpg -d somefile` as a way to peek into it, so I wanted to keep that) 13:45
13:46 discord-raku-bot left, discord-raku-bot joined
gfldex @glfdex testy, testy? 13:49
gfldex this looks better
gfldex @gfldex#8222 well, I acutally have to have a link, tho. 13:50
13:50 discord-raku-bot left
perryprog gfldex, can I bother you to just remove the ID codes outright? :P 13:50
13:50 discord-raku-bot joined
perryprog just since it shouldn't matter for a bridge, IMO 13:51
gfldex The bridge has to translate stuff that IRC doesn't understand. Discord is using `@ ~ 'some stuff here'` quite heavily. 13:52
13:52 monkey_ joined
perryprog Oh, I mean in username tags 13:52
gfldex That would be very confusing.
perryprog As in make <@123> into @person instead of @person#456 13:53
Anton Antonov @avuserow#1203 Do I have to install `xclip` or I can skip it? 13:56
gfldex Quite in contrast to IRC, usernames are not uniqe on Discord. There are also per-server usernames.
perryprog I'm aware. There's just no need to have the #1234 portion for an IRC bridge of this scale. 13:57
avuserow You can skip it. It's used in a few commands but if you just want to echo things to stdout, you're fine
perryprog (In my opinion, of course :))
avuserow I used it have it on a headless server with no X11 and it worked fine.
Anton Antonov Installing it now it now with `brew`... 13:58
Nemokosch Username#Discriminator should be good enough
also, it is unique to my knowledge
or nicks as well
Anton Antonov Any "discriminator" would do?
gfldex perryprog: For the channel itself, not-so-unique usernames might be fine. But there are public IRC logs that I don't want to confuse.
avuserow <@694526400488669234> I have no idea if saiph will run on a Mac. Let me know how it goes and patches welcome. 13:59
Nemokosch I mean your discriminator is 7232, it's random generally
perryprog Right. It doesn't give any information on the IRC side of things. I bet $20 imaginary dollars that there isn't—and hasn't—been a single username collision on the discord side of the bridge. 14:00
Anton Antonov OK, right, it is not something I could make-up on the spot.
I am getting now a failure for installing Raku's `Readline` -- not a `saiph` error per se. 14:01
14:02 frost left
avuserow I probably could use something else. I think I just use it for tab completion on field names when editing an entry, and maybe completion for dot commands 14:13
14:17 Xliff joined 14:22 keutoi left
Anton Antonov @avuserow#1203 It looks like on Mac OS X `gpg` is used instead of `gpg2` : stackoverflow.com/q/54895263/ . 14:35
@avuserow#1203 So, I changed the test `ok which('gpg2'), 'gpg2 in PATH';` to `ok which('gpg'), 'gpg in PATH';` and I was able to install `saiph`. 14:36
avuserow I should remove that. gpg is no longer used for the current format. (I guess you could trick it into using the older format but I'd rather not...) 14:39
15:22 linkable6 left, evalable6 left, evalable6 joined 15:24 linkable6 joined 15:26 hkdtam joined 15:38 sena_kun left 15:39 sena_kun joined
gfldex lolibloggedalittle: gfldex.wordpress.com/2021/10/09/do...spiration/ 15:40
15:43 Altai-man joined 15:44 sena_kun left 15:54 Altai-man left, sena_kun joined 16:10 monkey_ left 16:47 rypervenche joined 16:56 notna joined 16:58 monochromec joined 17:19 Sgeo joined 17:46 monochromec left 17:47 monochromec joined 18:02 reportable6 left
Geth doc: 2a2ac73c91 | (Joseph Brenner)++ (committed by Juan Julián Merelo Guervós) | 2 files
documenting when order-of-declaration matters with multi-dispatch (Fixes #3970)
18:03
doc: 6c101243bc | (Joseph Brenner)++ (committed by Juan Julián Merelo Guervós) | 2 files
Some small fixes for clarity and brevity
18:03 linkable6 left 18:06 linkable6 joined 18:10 notna left
Geth doc: 8b8d817db3 | Coke++ | doc/Language/functions.pod6
whitespace
18:29
doc: 52ca420fae | Coke++ | 2 files
new words
linkable6 Link: docs.raku.org/language/functions
[Coke] crap. %!sort -u screwed up the unicode sorting in xt/pws 18:32
guessing related to my recent os x upgrade to latest OS 18:33
if someone could fix that and make sure xt/words.t passes, I'd appreciate it.
18:39 berber44 joined
RaycatWhoDat Anton Antonov: I haven't really written anything on tech 18:41
18:41 vrurg left 18:42 avar left, berber44 joined
RaycatWhoDat Anton Antonov: I haven't really written anything on tech 18:42
18:42 vrurg_ joined 18:43 japhb left, monochromec left, japhb joined, avar joined 18:52 MasterDuke left
berber44 Hello, I found a "Complete course" of Raku that looks promising, but it only has the first, most basic, part. I wonder whether other parts follow up? course.raku.org/ 18:53
tellable6 2021-10-07T02:03:14Z #raku <tbrowder> berber44 you are very welcome
2021-10-07T05:13:02Z #raku <japhb> berber44 test-t is part of a benchmark suite whose performance results are posted semi-regularly to #raku-dev by |Tux|. You can find them in the channel logs.
18:54 monkey_ joined
mfiano berber44: The about page mentions that only the first part is published. It seems that part 2 development has been stalled since February though. 19:01
berber44 That's sad 19:02
The chaper names look good
^chapter
^chapter 19:03
19:03 MasterDuke joined, reportable6 joined 19:10 monkey_ left 19:16 jjido joined 19:17 berber44 left
Xliff What's the best hash initializer when keys are actually scalars? AKA Is there a shorter, more idiomatic way to do: "my %hash; my $key = 'key'; %hash{$key} = 'value'" 19:19
What's the best hash initializer when keys are actually scalars? AKA Is there a shorter, more idiomatic way to do: "my %hash; my $key = 'key'; %hash{$key} = 'value'" 19:20
MasterDuke m: my $k = "a"; my %h1 = $k => 1; dd %h1; my %h2 = $k, 1; dd %h2 # like these? 19:32
camelia Hash %h1 = {:a(1)}
Hash %h2 = {:a(1)}
Xliff MasterDuke: Hmmm... something like that, yes. 19:41
m: my $k = 'a'; my %h = ( $k => 1 ); dd %h
camelia Hash %h = {:a(1)}
Xliff <- Derp
19:52 jdv left, jdv joined 20:15 patrickz joined 20:39 cog__ joined, cognominal_ left 20:40 [Coke] left 20:41 cog__ joined, [Coke]_ joined 20:48 euandreh left, euandreh joined, ggoebel joined 21:21 ggoebel left 21:31 hkdtam left 21:32 ggoebel joined 22:12 jmcgnh left 22:44 euandreh left 22:46 jjido left 22:49 jmcgnh joined 23:00 vrurg_ is now known as vrurg 23:07 monkey_ joined 23:12 patrickz left 23:14 patrickb left 23:22 [Coke]_ is now known as [Coke] 23:52 ggoebel left 23:58 euandreh joined