[00:07] *** reportable6 left
[00:07] *** reportable6 joined
[00:54] *** swaggboi joined
[01:10] *** squashable6 left
[01:13] *** jgaz joined
[01:13] *** jgaz left
[01:13] *** squashable6 joined
[01:13] *** jgaz joined
[01:46] *** [Coke] left
[01:54] *** [Coke] joined
[01:55] *** jgaz left
[02:55] *** unicodable6 left
[02:55] *** tellable6 left
[02:55] *** squashable6 left
[02:55] *** evalable6 left
[02:55] *** statisfiable6 left
[02:55] *** linkable6 left
[02:55] *** reportable6 left
[02:55] *** sourceable6 left
[02:55] *** coverable6 left
[02:55] *** notable6 left
[02:55] *** bloatable6 left
[02:55] *** releasable6 left
[02:55] *** committable6 left
[02:55] *** shareable6 left
[02:55] *** quotable6 left
[02:55] *** bisectable6 left
[02:55] *** greppable6 left
[02:55] *** benchable6 left
[02:55] *** nativecallable6 left
[02:55] *** quotable6 joined
[02:56] *** evalable6 joined
[02:57] *** shareable6 joined
[02:57] *** coverable6 joined
[02:57] *** reportable6 joined
[02:57] *** committable6 joined
[02:57] *** bisectable6 joined
[02:57] *** sourceable6 joined
[02:57] *** squashable6 joined
[02:58] *** statisfiable6 joined
[03:01] *** ggoebel left
[03:14] *** xinming joined
[03:55] *** bloatable6 joined
[03:56] *** benchable6 joined
[04:55] *** releasable6 joined
[04:55] *** unicodable6 joined
[04:56] *** linkable6 joined
[04:56] *** notable6 joined
[04:57] *** nativecallable6 joined
[04:57] *** greppable6 joined
[05:57] *** statisfiable6 left
[05:57] *** benchable6 left
[05:57] *** evalable6 left
[05:57] *** squashable6 left
[05:57] *** releasable6 left
[05:57] *** bisectable6 left
[05:57] *** reportable6 left
[05:57] *** quotable6 left
[05:57] *** bloatable6 left
[05:57] *** notable6 left
[05:57] *** linkable6 left
[05:57] *** nativecallable6 left
[05:57] *** sourceable6 left
[05:57] *** unicodable6 left
[05:57] *** greppable6 left
[05:57] *** shareable6 left
[05:57] *** coverable6 left
[05:57] *** committable6 left
[05:58] *** greppable6 joined
[06:00] *** statisfiable6 joined
[06:00] *** nativecallable6 joined
[06:00] *** coverable6 joined
[06:00] *** linkable6 joined
[06:08] *** reportable6 joined
[06:58] *** shareable6 joined
[06:58] *** squashable6 joined
[06:59] *** bisectable6 joined
[06:59] *** evalable6 joined
[07:00] *** benchable6 joined
[07:00] *** committable6 joined
[07:04] *** atroxaper joined
[07:20] *** seednode left
[07:21] *** seednode joined
[07:27] *** Xliff left
[07:27] *** atroxaper left
[07:27] *** Xliff joined
[07:58] *** quotable6 joined
[07:58] *** bloatable6 joined
[07:59] *** releasable6 joined
[08:00] *** casaca left
[08:15] *** atroxaper joined
[08:17] <atroxaper> What if I need version higher then 1.5 but not 2. I thought that 1.5+ is what I need, but...

[08:17] <atroxaper> m: v2.0.0 ~~ v1.5+

[08:17] <camelia> rakudo-moar b5fb3628b: ( no output )

[08:18] <atroxaper> m: say v2.0.0 ~~ v1.5+

[08:18] <camelia> rakudo-moar b5fb3628b: OUTPUT: «True␤»

[08:19] *** Sgeo left
[08:21] *** casaca joined
[08:35] *** seednode left
[08:35] *** seednode joined
[08:46] <atroxaper> As I see in version.t, such logic was not provided at all.

[08:58] *** notable6 joined
[08:59] *** unicodable6 joined
[09:00] *** sourceable6 joined
[09:04] *** abraxxa joined
[09:06] *** abraxxa left
[09:06] *** abraxxa joined
[09:09] *** atroxaper left
[09:11] *** abraxxa left
[09:11] *** abraxxa joined
[09:50] *** abraxxa left
[09:51] *** abraxxa joined
[09:58] *** tellable6 joined
[10:01] <lizmat> atroxaper: I think :api was more foreseen for these types of situations?

[10:01] <tellable6> lizmat, I'll pass your message to atroxaper

[10:07] * lizmat clickbaits https://rakudoweekly.blog/2021/12/20/2021-51-transiting/

[10:08] <discord-raku-bot> <Anton Antonov#7232> @lizmat I find your update of `Acme::Text::UnsideDown` instructive. (The CLI part.)

[10:09] <lizmat> nice  :-)

[10:09] <lizmat> I was thinking of adding 🙃 , but am unsure of what the counterpart should be

[10:12] <lizmat> I guess 🙂

[10:15] <discord-raku-bot> <Anton Antonov#7232> @lizmat Right! I was thinking about non-English / non-Latin characters too.

[10:17] <discord-raku-bot> <Anton Antonov#7232> @lizmat BTW, I am intensively working on the "Raku for Data Wrangling" article. There are just lots of little things to clear-up. (E.g. program and completely understand...)

[10:17] <lizmat> do you intend that as an Advent blog post ?

[10:19] <discord-raku-bot> <Anton Antonov#7232> Yes. I will put a draft in GitHub within 2 hours.

[10:19] <discord-raku-bot> <Anton Antonov#7232> As far as I know I missed the deadline for FOSDEM22

[10:19] <moritz_> wasn't that extended to 2021-12-31?

[10:20] <lizmat> indeed, extended to 31-12!

[10:21] <discord-raku-bot> <Anton Antonov#7232> <@171354420292878346>tz_ and @lizmat Great then!

[10:28] <CIAvash> m: say v2.0.0 ~~ v1.5 ..^ v2

[10:28] <camelia> rakudo-moar b5fb3628b: OUTPUT: «False␤»

[10:29] <moon-child> hmm, now I am thinking

[10:29] <moon-child> there should be range junctions

[10:30] <CIAvash> atroxaper: maybe `v2.0.0 ~~ v1.5 ..^ v2`

[10:30] <tellable6> CIAvash, I'll pass your message to atroxaper

[10:31] <moon-child> hmm, no, that wouldn't work

[10:32] <moon-child> junctions need to be discrete for dispatch

[10:32] <moon-child> :/

[10:34] <lizmat> Anton Antonov: PRs accepted  :-)

[10:58] *** evalable6 left
[10:58] *** linkable6 left
[11:00] *** evalable6 joined
[11:08] <ugexe> v1.*

[11:08] <ugexe> Yeah guess that isn’t quite it either

[11:11] <ugexe> I’d just treat it like two expressions 

[11:33] *** atroxaper joined
[11:35] <atroxaper> lizmat: yes. I've already figured that out. I prepare a post about versioning at all and in Raku in particular.

[11:35] <tellable6> 2021-12-21T10:01:12Z #raku <lizmat> atroxaper: I think :api was more foreseen for these types of situations?

[11:35] <tellable6> 2021-12-21T10:30:33Z #raku <CIAvash> atroxaper: maybe `v2.0.0 ~~ v1.5 ..^ v2`

[11:41] <atroxaper> tellable6: I think I cannot write Module:ver<1.5 .. ^2> ^^

[11:41] <tellable6> atroxaper, I haven't seen I around, did you mean I`?

[11:41] <atroxaper> CIAvash: I think I cannot write Module:ver<1.5 .. ^2> ^^

[11:42] <lizmat> atroxaper: indeed, one cannot atm, but I don't see why that syntax couldn't be supported in a use statement

[11:42] <lizmat> I assume you'd still want the highest version number in that range, right ?

[11:43] <atroxaper> lizmat: yes.

[11:43] <lizmat> that *should* be doable, I guess...  :-)

[11:46] <atroxaper> lizmat: In languages without API option in versioning the first digit is an api version, you know that. Usecase:  I 'know' that some functionality is appears in version 1.5. But I want to be safe and do not use v2 automatically. 

[11:47] <lizmat> understood

[11:59] *** linkable6 joined
[12:07] *** reportable6 left
[12:10] *** reportable6 joined
[12:10] *** p6steve left
[12:23] *** p6steve joined
[12:24] *** ggoebel joined
[12:26] <xinming> releasable6: status

[12:26] <releasable6> xinming, Next release will happen when it's ready. 3 blockers. 0 out of 188 commits logged (⚠ 18 warnings)

[12:26] <releasable6> xinming, Details: https://gist.github.com/8cfbcaab16868cffa1c3339a3e4f4cea

[12:26] <xinming> Waiting for the xmas release. :-)

[12:27] <lizmat> jdv is still on it afaik  :-)

[12:30] *** p6steve left
[12:32] <Geth> ¦ ecosystem: abeff82834 | (Elizabeth Mattijsen)++ | META.list

[12:32] <Geth> ¦ ecosystem: Slang::Roman now lives in the zef ecosystem

[12:32] <Geth> ¦ ecosystem: 

[12:32] <Geth> ¦ ecosystem: https://raku.land/zef:raku-community-modules/Slang::Roman

[12:32] <Geth> ¦ ecosystem: review: https://github.com/Raku/ecosystem/commit/abeff82834

[12:35] <MasterDuke>  i don't know why https://github.com/rakudo/rakudo/issues/4314 is marked as a blocker, and i think https://github.com/rakudo/rakudo/issues/4593 can be closed

[12:36] *** ggoebel left
[12:37] <lizmat> MasterDuke: unmarked and closed

[12:51] *** TheAthlete joined
[12:58] *** ggoebel joined
[13:01] *** p6steve joined
[13:06] *** p6steve left
[13:11] *** jgaz joined
[13:19] *** tejr_ joined
[13:20] *** p6steve joined
[13:22] *** tejr left
[13:52] *** discord-raku-bot left
[13:53] *** discord-raku-bot joined
[14:12] *** eseyman left
[14:17] <atroxaper> lizmat: one more thing about range in :ver<>. We will need something appropriate in META6->depends then.

[14:23] *** p6steve left
[14:23] *** getimiskon joined
[14:35] *** p6steve joined
[14:39] *** p6steve left
[14:40] *** p6steve joined
[14:45] *** p6steve left
[14:46] *** p6steve joined
[14:51] *** p6steve left
[14:52] *** p6steve joined
[14:56] <[Coke]> https://raku-advent.blog/2021/12/21/day-21-santa-claus-is-rakuing-along/ - code formatting looks a little odd.

[14:57] *** p6steve left
[14:58] *** p6steve joined
[15:02] *** p6steve left
[15:02] *** Manifest0 joined
[15:04] *** p6steve joined
[15:22] *** Sgeo joined
[15:22] *** eseyman joined
[15:26] <ugexe> versions are already ranges

[15:27] <ugexe> 1.* is a range. 1.5+ is a range

[15:27] <ugexe> which is to say syntax like v1 ~~ vX .. vZ wouldnt really work

[15:28] <ugexe> we have api, perhaps we should just use that

[15:29] <ugexe> you have your api range, and your version range

[15:29] <ugexe> Foo:api<1>:ver<0.5+>

[15:32] <ugexe> version literals also complicate things

[15:32] <ugexe> m: say v1.1..^1

[15:32] <camelia> rakudo-moar b5fb3628b: OUTPUT: «v1.1..^1␤»

[15:33] <ugexe> so im not sure trying to cram semver semantics into our existing version semantics has been given sufficient forethought 

[15:39] <ugexe> to be clear im not against it, just pointing out the problems

[16:08] *** p6steve left
[16:14] *** p6steve joined
[16:24] *** daxim left
[16:24] *** daxim joined
[17:03] <atroxaper> ugexe: I was just surprised that 2.0~~1.5+ is true. Not all authors observe cleanliness in versioning. I would like to be able to depend on such projects more flexibly. If I could write something like 2.0!~~1.5? is true, it would be great.

[17:03] <atroxaper> In any case, there is a need to tell people how, in what cases and why to use versions in the projects. I plan to write an article about it.

[17:03] <atroxaper> Python and Java, for example, have closed project environment (venv and jar). Raku has a shared place for all libraries. And in our case, the attention to versioning (both on the part of the authors and on the part of the users) should be high. I think.

[17:03] <ugexe> you just need to check api and version separately

[17:04] <ugexe> $dist.meta<api> ~~ 1.* && $dist.meta<ver> ~~ 0.5+

[17:05] <ugexe> that relies on the author versioning their stuff in the idiomatic raku way, but that would be the case regardless of what versioning semantics were used

[17:08] <atroxaper> ugexe: I completely agree with the last sentence. 

[17:10] *** ggoebel left
[17:10] *** ggoebel joined
[17:14] <atroxaper> ugexe: I didn't find in the documentation some simple recipe for "do this, but don't do that." For example, it was a finding for me (although obvious) that writing a version in META6 depends section is not enough - you also need to write a version in use. In addition, I still cannot understand what usage can be found for specifying the version and authorship over a specific class in the code (class A: version<1> {... }) - because the use op

[17:14] <atroxaper> erates with the concept of compunit, but not package.

[17:15] <ugexe> then again the synopsis said that 6.2.3+ should match 6.2.*

[17:16] <ugexe> well you could set your in-code version/authorship with the data from the meta6.json

[17:16] <atroxaper> verstion.t disagree :)

[17:17] <ugexe> sure, the synopsis were written like 20 years ago and aren't the spec

[17:17] <atroxaper> yes.

[17:19] <ugexe> class Foo:ver($?DISTRIBUTION.meta<ver>) { }

[17:19] <evalable6> ugexe, rakudo-moar efbf8ea4f: OUTPUT: «Use of Nil in string context␤␤»

[17:19] <atroxaper> ugexe: but for what I would need to set in-code (not in use statement) version/authorship at all?

[17:20] <ugexe> i dunno, you tell me

[17:20] <atroxaper> WOW! Cool! I didn't know about $?DISTRIBUTION.meta<ver>.

[17:20] <ugexe> yep, and you can `use Module::In::My::Dist:ver($?DISTRIBUTION.meta<ver>);` as well

[17:22] <atroxaper> http://localhost:3000/language/typesystem#Versioning,_authorship,_and_API_version. I can set version for class. But... I don't know why. And nobody do not know. Until I started to deal with versioning through experiments, this possibility confused me.

[17:23] <ugexe> i dont think its really used by anything

[17:23] <atroxaper> bad link https://docs.raku.org/language/typesystem#Versioning,_authorship,_and_API_version.

[17:25] <ugexe> i'd probably just mention that at all

[17:25] <ugexe> not mention^

[17:25] <atroxaper> ugexe: yes! And it confused me. For example, I think "the smart guy FCO write this. For what?!' https://github.com/FCO/Red/blob/master/lib/Red.pm6#L25

[17:26] <atroxaper> 'Should I write that too?...'

[17:33] *** casaca left
[17:48] *** holyghost left
[17:51] *** abraxxa left
[17:54] *** atroxaper left
[17:59] *** ggoebel left
[18:08] *** reportable6 left
[18:08] *** reportable6 joined
[18:21] *** casaca joined
[18:23] *** casaca left
[18:58] *** TheAthlete left
[19:48] *** ggoebel joined
[19:55] *** swaggboi left
[20:08] <kybr> do we have argmin? or the like? 

[20:11] *** vrurg_ is now known as vrurg

[20:18] <lizmat> kybrL what does argmin do?

[20:18] <lizmat> kybr: what does argmin do?

[20:27] <kybr> m: sub argmin(@list) { my $min-i = -1; my $min = Inf; for @list.kv -> \k, \v { if v < $min { $min =     v; $min-i = k; } } $min-i, $min }

[20:27] <camelia> rakudo-moar b5fb3628b: OUTPUT: «===SORRY!=== Error while compiling <tmp>␤Strange text after block (missing semicolon or comma?)␤at <tmp>:1␤------> v < $min { $min =     v; $min-i = k; } }⏏ $min-i, $min }␤»

[20:27] <kybr> darn. sorry. return the index of the element with the lowest value

[20:28] <kybr> a common function in MATLAB-y environments. R, numpy, etc.

[20:28] <lizmat> kybr: is that the first lowest value, or all lowest values?

[20:29] *** jgaz left
[20:29] <kybr> hmmm. first will do, but i could see a argument for all.

[20:29] <gfldex> kybr: We hardly ever work with indexes, because they can be a little brittle. You can get the smallest element with `[min] @list`.

[20:29] <kybr> i thought there might be a more rakuvian way to do it

[20:30] <kybr> gfldex: thanks. yes. i love the [x] op. I found `[Z] $list` to do a sort of matrix transpose the other day 

[20:32] *** jgaz joined
[20:38] <[Coke]> m: sug argmin(@list) { @list.pairs.sort(*.value)[0].key}; argmin(<5 6 3 1 0 2 4>).say

[20:38] <camelia> rakudo-moar b5fb3628b: OUTPUT: «===SORRY!=== Error while compiling <tmp>␤Variable '@list' is not declared.  Did you mean any of these: '&list',␤'&last', '&gist', 'List'?␤at <tmp>:1␤------> sug argmin(⏏@list) { @list.pairs.sort(*.value)[0].ke␤»

[20:38] <[Coke]> m: sub argmin(@list) { @list.pairs.sort(*.value)[0].key}; argmin(<5 6 3 1 0 2 4>).say

[20:38] <camelia> rakudo-moar b5fb3628b: OUTPUT: «4␤»

[20:39] <[Coke]> that gets all the key/value combos as pairs, sorts them by value, and then gets the position of the first sorted pair.

[20:40] <[Coke]> (assuming you do need index)

[21:06] <SmokeMachine> .tell atroxaper maybe FCO is not that smart… :) but Red has :ver there because it’s updated by Mi6 and I could be wrong but I think that broke mi6 release when I removed that…

[21:06] <tellable6> SmokeMachine, I'll pass your message to atroxaper

[21:13] *** melezhik joined
[21:14] <melezhik> I gave been playing with Sparky JobAPI. It turns out that Sparky async jobs work really well with Raku embedded async features - https://github.com/melezhik/sparky#job-api

[21:14] <tellable6> 2021-12-17T15:34:23Z #raku <tbrowder> melezhik thanks

[21:14] <melezhik> some examples are here

[21:15] <melezhik> I am not sure if this is possible in any existing CICD system - for examplescontrolled recursive builds  :]

[21:16] <melezhik> technically it give an extreme freedom to write CICD pipelines and workflows of any complexity ... and all Raku async none blocking fashion

[21:17] <melezhik> plus Sparky itself runs jobs (builds) asynchronously - in a sense - as parallel jobs - processes

[21:17] <melezhik> while high level scenario would wait till jobs are finished using supply/tap/Curlie HTTP

[21:32] *** ggoebel left
[21:34] *** ggoebel joined
[21:48] <discord-raku-bot> <Skarsnik#7370> m: grammar A {...}; grammar B is A {token TOP {piko}}; grammar A {token foo {foo}}

[21:48] *** Skarsnik joined
[21:48] <Skarsnik> m: grammar A {...}; grammar B is A {token TOP {piko}}; grammar A {token foo {foo}}

[21:48] <camelia> rakudo-moar b5fb3628b: OUTPUT: «===SORRY!=== Error while compiling <tmp>␤'B' cannot inherit from 'A' because 'A' isn't composed yet (maybe it is stubbed)␤at <tmp>:1␤»

[21:49] <Skarsnik> I guess that only work for class?

[21:51] <ugexe> m: class A {...}; class B is A { }; class A { }

[21:51] <camelia> rakudo-moar b5fb3628b: OUTPUT: «===SORRY!=== Error while compiling <tmp>␤'B' cannot inherit from 'A' because 'A' isn't composed yet (maybe it is stubbed)␤at <tmp>:1␤»

[21:51] <Skarsnik> (A is generated for me, I would rather have it at the end of the file ^^)

[21:57] <Skarsnik> I am not sure I could put A in its own file since it inherit another grammar from the same file as B

[22:01] *** euandreh left
[22:12] * [Coke] is boosted.

[22:15] * lizmat hopes to get one on the 25th

[22:22] * MasterDuke got boosted on thursday right into bed for most of the day friday

[22:25] <Skarsnik> part 3 of my dumb thing x) http://blogs.perl.org/users/sylvain_colinet/2021/12/writing-a-snes-assembler-compilerdisassembler---day-3.html 

[22:25] <[Coke]> heh. it's only been an hour or so. I expect I'll feel like crap tomorrow (I'm off work until Jan)

[22:27] <Skarsnik> nice ^^

[22:29] <Skarsnik> I wish I did not have to work until January.

[22:31] *** euandreh joined
[22:35] *** jgaz left
[22:46] <thowe> my booster pretty much killed the next day for me, too

[22:48] <[Coke]> I had a lot of vacation time that I had to squeeze in or lose it, and our company gives everyone the week between xmas & nye off!

[22:51] <thowe> nice

[22:51] <thowe> lizmat booster for x-mas is a bit of a mixed blessing, I guess. :)

[22:52] <lizmat> yeah, and that would also be on my birthday  :-)

[22:52] <lizmat> fortunately, I celebrate my birthday always in summer  :-)

[22:53] <thowe> No kidding!  I'll raise my Saturday morning coffee mug in your honor.

[22:53] <lizmat> thank you  :-)

[22:53] <tbrowder> and i, too!

[22:54] <[Coke]> best of luck all around.

[22:54] <tbrowder> as a new year’s eve baby i empathize

[22:55] <Skarsnik> I have another shot the 24, I hope that will not ruin the we x)

[22:56] <thowe> Merry Boosterx!  May spike proteins bless us, everyone!

[22:58] <lizmat> meanwhile, search results on logs.liz.nl now have highlighting of the needle(s) in the messages :-)

[22:59] <lizmat> e.g. https://logs.liz.nl/search.html?query=f.o&type=matches&channel=raku

[22:59] <lizmat> and with that /me calls it a day  

[23:03] <MasterDuke> nice. lizmat++

[23:06] <thowe> I don't understand the difference between say and put and at this point I'm too afraid to ask.

[23:07] <lizmat> say is: print foo.gist ~ "\n"

[23:07] <lizmat> put is: print foo.Str ~ "\n"

[23:07] <thowe> oh, gist vs Str

[23:16] *** Skarsnik left
[23:18] *** melezhik left
[23:22] *** Colt left
[23:23] *** Colt joined
[23:29] *** Colt left
[23:29] *** Colt joined
[23:56] *** [Coke] left
