🦋 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.
codesections In fact, it looks like rakudo's Mu.new actually bypasses .bless and goes straight to .create in the happy path – so even faster than ^^^^ 00:21
github.com/rakudo/rakudo/blob/1cd7...u.pm6#L115 00:22
guifa_ codesections interestingly, when I had very high reps in my test, the custom .new was the winner by a lot 02:31
well, I had one test where it won, but that assumed constant values rather than having different values each time around 02:32
Geth ecosystem: 233dd6a94f | (Elizabeth Mattijsen)++ | META.list
Remove XML, DateTime::TimeZone, DateTime::Math

They now live in the zef ecosystem
10:59
ecosystem: f0632fca68 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | META.list
Remove LWP::Simple
11:01
ecosystem: ece1ec8c18 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | META.list
Freeze SOAP::Client
11:19
Geth App-Rakubrew/fix-par-env: 5eb2132b61 | (Patrick Böker)++ | 3 files
Fix PAR changing env vars on MacOS
14:10
leont wrote a raku blogpost, and then accidentally closed that tab -_- 14:52
Geth App-Rakubrew: 39ca617b01 | (Patrick Böker)++ | 3 files
Fix PAR changing env vars on MacOS

On MacOS Rakubrew is deployed via the PAR packager. On MacOS rakubrew itself acts as the shim in `shim` mode. PAR adds environment variables and modifies the dynamic library loading path variable. Those changes can cause issues in the program being called. Thus we now try to revert the environment variables to their original state before doing `exec` in the ... (8 more lines)
14:56
App-Rakubrew: 463e5eda89 | (Patrick Böker)++ | lib/App/Rakubrew/VersionHandling.pm
Switch shims to use symlinks instead of hardlinks

This change makes it possible to have the shim dir on a different partition than the rakubrew script.
App-Rakubrew: f858e2681b | (Patrick Böker)++ | 4 files
Version 27
15:17
Anton Antonov I want to make an outliers identifiers package (facilitates the identification of outliers in, say, numerical arrays or lists). What would be good name for it? Here are possible names: 1) `Data::OutlierIdentifiers` , 2) `Stats:OutlierIdentifiers` , 3) `ML::OutlierIdentifiers` . 16:17
moritz Math::Outliers? 17:53
Anton Antonov @mori#6536tz Hmm... that is clear and concise. But I think it hints too much on the results not the algorithms... 17:57
Also, if a "general" (multi-type, multi-dimensional) outlier identifier (or anomaly detector) is made using Machine Learning (ML) algorithms, `Math::Outliers` a good place for it? 18:00
I am browsing the packages under Math right now.
Also, if a "general" (multi-type, multi-dimensional) outlier identifier (or anomaly detector) is made using Machine Learning (ML) algorithms, is`Math::Outliers` a good place for it? 18:02
Also, if a "general" (multi-type, multi-dimensional) outlier identifier (or anomaly detector) is made using Machine Learning (ML) algorithms, is `Math::Outliers` a good place for it?
Do any of those seem good? 1) `Math::Outliers::1DIdentifiers` 2) `Math::Outliers::AnomalyDetectors` 18:05
guifa_ When in doubt, you can always change later. The advantage with Raku is that you can provide the same module under two separate names, and with use Foo:auth<bar>, it's okay for two people to have the same name to a module 18:25
Early in the ecosystem it's probably a bit hard to tell what the best organization/naming structure is
Anton Antonov @guifa_ Ok. Then I will go with the name most clear _and_ expected to me. (`Stats::OutlierIdentifiers` .) 18:29
guifa_ I'll actually be doing that fairly soon. I have a module Intl::UserLanguage which made sense in the context of my international work 18:30
but then as I made Intl::UserTimezone I realized that was starting to stretch it 18:31
so I'm going to move them to a new namespace User:: or UserInfo:: where other similar get-info-about-user's-environment modules would fit in 18:32
guifa_ am I going crazy or did there used to be a thing about Hash subclasses not having BUILD called on them? 19:13
lizmat that's quite possible... 19:15
guifa_ aaaah there was 19:17
but only when bless isn't called manually
m: class A is Hash { method BUILD { self.BIND-KEY: "a", 1 }; method TWEAK { self.BIND-KEY: "b", 2 }; }; say A.new
camelia {}
guifa_ m: class A is Hash { method new { self.bless }; method BUILD { self.BIND-KEY: "a", 1 }; method TWEAK { self.BIND-KEY: "b", 2 }; }; say A.new 19:18
camelia {a => 1, b => 2}
lizmat well, yeah, you could argue that there's a problem in core that .bless is not called for subclasses of Hash 19:19
like it is e.g. done with Date / DateTime
guifa_ It's by design per github.com/rakudo/rakudo/issues/2716 19:21
It's easy enough to just add a .new or even directly call a .bless 19:22
although tbh I had never thought of just directly call Foo.bless 19:26
Anton Antonov @guifa_ Thank you for your input! 19:52
MasterDuke guifa_: re your benchmark from earlier. you need to be carefull about running different things in the same script. there's a decent chance that spesh might optimize the first thing it sees, and depending on how similar the subsequent things are, you could run into a situation where the first thing is artificially faster, regardless of which one it 20:00
it
*it is
guifa_ MasterDuke: yeah, I've noticed that sometimes, and occasionally upon reordering the advantage can shift 22:14
MasterDuke i have a WIP moarvm PR to remove spesh candidates if they get too many deopts, which might help, but it's going to take me a little while to get it rebased after new-disp 22:15
gfldex @Anton Antonov#7232 In my eyes the description field in a meta6.json is more important than the name. 22:21