🦋 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.
japhb Story in what sense? There is a raku-mode, I use it, it does what I need for the most part. 01:45
drakonis japhb: code completion works as expected, yeah? 02:39
i tried emacs and found it odd that completion didn't really work all that well
japhb drakonis: What kind of "code completion" are you talking about? Being able to tab-complete partial method/class/constant names, that sort of thing? 02:50
drakonis yeah, that's the one.
japhb Ah, in that case you're probably looking more for what's in Comma than in Emacs raku-mode 02:51
drakonis ah i see.
japhb raku-mode is more about highlighting, code layout defaults, correct region commenting, that sort of thing
drakonis i already have comma installed, but fair enough.
its still ways from being competitive with other major modes in emacs 02:52
japhb A recent version, I hope? Comma does regular releases.
drakonis its as recent as yesterday
japhb drakonis: Not terribly surprised; several of the folks who are really good at writing editor plugins work on Comma. 02:53
(And thus not on Emacs, I mean.)
drakonis bummer
japhb Opportunity for you? ;-) 02:54
drakonis ha, perhaps.
i'm not particularly great at elisp anyways
japhb I resemble that remark
perryprog Tangentially related, but I remember a person at a place I had a paid internship I had who wrote production applications in elisp 02:55
They loooved it
drakonis lol, elisp or common lisp?
perryprog Elisp!
drakonis ha, that's impressive
perryprog For sure. Had a pretty sick emacs setup, too. 02:56
(Duh)
drakonis haw, you gotta have that.
perryprog Admittedly emacs's first class support for elisp is pretty nice
japhb I bet. If you're going to invest all that time in learning one particular lisp variant, you'll tend to get into customizing
drakonis i'm coming off common lisp to check out raku
i dearly miss the editing experience i suppose 02:57
perryprog I've gotta finish learning sbcl
My favorite language has always been Clojure, though :)
drakonis i'm ambivalent towards clojure 02:58
perryprog It helps if you're coming from JVM land, like I was 02:59
drakonis that's true, yeah.
perryprog Having access to that giant toolbox helps a ton in understanding the power Clojure gives
drakonis clojure's popularity is largely due to that
perryprog Definitely
Somewhat decent interoperability from functional to OO isn't easy to pull off 03:00
(Not amazing, mind you, but there's only so much you can do ;) )
drakonis sure thing.
raku looks very nice though 03:02
i've heard about it back when it was still perl 6 but never actually bothered looking too deep into it
today i looked up the docs and actually got curious about it 03:03
seems like a lot of fun to play with
drakonis this rakuast thing looks pretty cool 03:12
Voldenet Functional languages have the immutability causing performance problems that get shrugged off and clojure is no exception iirc 03:50
Voldenet compare HEAD (^100000).reduce({ $^a + $^b }).say; ||| my $a = 0; for ^100000 { $a += $_ }; say $a; 04:00
floppy_disk what is the general file structure of a raku project? 04:30
japhb floppy_disk: docs.raku.org/language/modules#Pre...the_module is a start (though slightly out of date). App::Mi6 will create a reasonable starting skeleton, and there are some other tools for that as well; see docs.raku.org/language/modules-extra 04:50
floppy_disk i see, thanks a lot 04:51
japhb Sure 04:52
MasterDuke benchable6: compare HEAD (^100000).reduce({ $^a + $^b }).say; ||| my $a = 0; for ^100000 { $a += $_ }; say $a;       # Voldenet 09:36
benchable6 MasterDuke, starting to benchmark the 1 given commit
MasterDuke, ¦HEAD: «4===SORRY!4=== Error while compiling /tmp/Iy9MHdGyDL␤Missing block␤at /tmp/Iy9MHdGyDL:1␤------> 3y $b = Bench.new; $b.cmpthese(10, %subs)8⏏4<EOL>␤»
Voldenet huh~
it wasn't me, was it
MasterDuke no, that's new...huh 09:37
benchable6: 2015.12,2022.02 (^100000).reduce({ $^a + $^b }).say 09:38
benchable6 MasterDuke, starting to benchmark the 2 given commits
MasterDuke, ¦2015.12: «1.6428» ¦2022.02: «0.4185»
MasterDuke, benchmarked the given commits and found a performance difference > 10%, now trying to bisect
MasterDuke, benchmarked the given commits and found a performance difference > 10%, now trying to bisect 09:39
MasterDuke, benchmarked the given commits and found a performance difference > 10%, now trying to bisect 09:40
MasterDuke, benchmarked the given commits and found a performance difference > 10%, now trying to bisect 09:41
MasterDuke i need to quiet that a bit
benchable6 MasterDuke, benchmarked the given commits and found a performance difference > 10%, now trying to bisect
MasterDuke, benchmarked the given commits and found a performance difference > 10%, now trying to bisect 09:42
MasterDuke, «hit the total time limit of 240 seconds»
MasterDuke benchable6: compare HEAD (^100000).reduce({ $^a + $^b }).say; ||| my $a = 0; for ^100000 { $a += $_ }; say $a; 09:43
benchable6 MasterDuke, starting to benchmark the 1 given commit
MasterDuke, gist.github.com/0b0a6f6df5c5adf045...fd397d92fa
MasterDuke looks like it just didn't like the comment
Voldenet Whoa, that's quite a difference :O 10:11
Geth ecosystem: 6f7a7f3d35 | (Elizabeth Mattijsen)++ | META.list
Fix URL of libdigest
12:12
lizmat and yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2022/03/14/2022-011-tau-2/ 15:32
kiti_nomad[m] 草泥马,别搞政治正确 18:28
Don't follow the trend of politics 18:29
[Coke] google translate says that included the phrase "political correctness", which in the US, is a weird right-wing way to say "treat other people with respect". 18:32
but that's probably just a bad translation. 18:33
kiti_nomad[m] If you do not support Ukraine, will your computer not be able to work? Does politics affect programming? What kind of life did the people of Ukraine live before Russia and Ukraine went to war? Do you understand? No one really cares about life in Ukraine, so why write about those junk things? 18:35
lizmat "No one really cares about life in Ukraine" 18:37
Actually I do, good friends of mine lived in the Ukraine and had to flee
apart from that: Russia's government and clergy want me dead, literally! 18:38
so yes, I *do* care
and that's why I write about them in the Rakudo Weekly 18:40
[Coke] oh, and having googled a bit more about the chinese there, I see the apparently nonsensical intro is probably a standin for a rude phrase. 18:43
kiti_nomad[m] So why don't you support North Koreans, Cubans, Libyans, Syrians, Yugoslavs, and Afghanistan? 18:44
lizmat en.wikipedia.org/wiki/Grass_Mud_Ho...nd_species 18:46
so why don't you start with a more friendly intro?
kiti_nomad[m] A dog bit a beggar. No one cares about the life of that beggar unless someone is on the scene, because this is an opportunity to make a show. But they just pretended to intimidate the dog, and no one would really fight with the dog. Now those people say that beggars are pitiful when they see people 18:51
lizmat en.wikipedia.org/wiki/Whataboutism 18:56
BinGOs [Coke]: all the cool fascists say "woke" and "cancel culture" these days. 18:59
[Coke] BinGOs: fair, PC is an earlier variant. 19:03
kiti_nomad[m] As far as I know, I think Ukraine is eager to be invaded by Russia. Because you can join the European Union or NATO in this way. Then you don't have to do anything, just stretch out your hands like those beggars, and you can be happy.
Xliff 'bout time. 19:04
[Coke] Thank you. 19:05
Xliff lizmat: Sorry you had to deal with that. Know you are appreciated for who you are in this direction.
lizmat thank you all
I understand we are all living in a bubble and may not realize it 19:06
lizmat but I also do not want to have large discussions about that here 19:06
ugexe they were, ahem, begging for it 19:07
lizmat dinner& 19:11
Xliff No, this place is not for such things. 19:19
Nemokosch what's the semantics of junctions? I find it very confusing but I don't think it's an issue per se 20:53
to show what I mean:
so all(1,4) > 3
this is False - makes sense, not all values are greater than 3 20:55
so all(1,4) <= 3
this is also False - again, makes sense, not all values are maximum 3
so all(1, 4) == 1 20:56
[Coke] m: say so all(1,4) == 1
camelia False
[Coke] (does camelia not work on discord bot sends? Guess that makes sense) 20:57
Nemokosch also False - still makes sense, not all values are equal to 1
so all(1, 4) != 1
this is True, even though not all values differ from 1 obviously
I get that this is because ! is a meta-operator but that's not the semantics I need
<= is not the same as !>
now, I want the non-meta negative counterpart of ==
[Coke] m: say any(1,4) &infix<!=> 1; say so any(1,4) &infix<!=> 1 20:59
camelia ===SORRY!=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> say any(1,4) &infix<!=>⏏ 1; say so any(1,4) &infix<!=> 1
expecting any of:
infix
infix stopper
postfix
st…
Nemokosch Camelia does work on discord sends every now and then btw but it's laggy so I didn't want to use it
[Coke] m: say any(1,4) &infix:<!=> 1; say so any(1,4) &infix:<!=> 1
camelia all(any(1, 4), True)
True
[Coke] so I showed both because I'm not sure the uncollapsed version is correct, but the collapsed version is. 21:03
Nemokosch again, what is the semantics, then? 21:05
oh, if you write &infix:<!=> instead of !=, it works well 21:07
I mean... if this really makes this sort of difference, I might open a problem solving issue for this...
no, the infix:<!=> version isn't actually right either 21:22
in fact it's completely wrong, as illustrated by the uncollapsed version
m: say so any(0,1,4) &infix:<!=> 1; 21:24
... anyway, this will be False because of the falsiness of 0
wait no, with any, it's no problem 21:26
with all, however
all(1,4) &infix:<!=> 2 #True 21:28
vs
all(0,1,4) &infix:<!=> 2 #False
anyone who can say why 22:59
1+infix:<+> 4
is 5 will get a cookie
seems to me it gets parsed as 1+(+4) 23:01
so `any(1,4) &infix:<!=> 4` was a lie all along
moon-child m: my &f = &infix:<+>; say 1 + f 4 23:02
camelia 5
Nemokosch it's in fact any(1,4) & (!= 4)
and for some reason this != 4 is even `True` 23:03
infix:<!=> 4
now this parsing might not be intended, I don't actually know
moon-child yes 23:04
Nemokosch added a comment to the issue I've just created for != being so "meta" for junctions 23:12
ugexe any(0,4) != 0 is False #3748 -- github.com/rakudo/rakudo/issues/3748 23:34
Nemokosch > This may be a notabug, but it's really unexpected and annoying behavior. This makes junctions way too unpredictable to work with. 23:43