[00:21] *** jjido left
[01:08] *** wayland joined
[01:08] *** wayland76 left
[01:37] *** hulk joined
[01:37] *** kylese left
[01:51] *** hvxgr left
[02:15] *** hulk left
[02:15] *** kylese joined
[02:30] *** nine left
[02:35] *** nine joined
[03:06] *** sibl joined
[04:50] <xinming> multi MAIN ($x where 'a' = 'a') { $x.say; }; multi MAIN ($x where 'b' = 'b') { $x.say; }

[04:50] <evalable6> xinming, rakudo-moar 5789d349e: OUTPUT: «a␤»

[04:51] <xinming> with this example,  Is there shorter way to remove not duplicate the   $x where 'a' = 'a'   part?

[04:52] <xinming> I mean the   $x where 'a'  = 'a',     remove the duplicated 'a' here.

[04:56] <vlad__> if 1 { say $x };

[04:56] <vlad__> or just say $x

[04:56] <xinming> vlad__: I mean the signature part

[04:56] <vlad__> no clue

[04:56] <vlad__> but someone will wake up who does have a clue

[04:57] <vlad__> hang about

[04:59] * vlad__ suddenly notices he's in #raku and not #perl

[05:01] *** sibl left
[05:21] *** sibl joined
[05:35] *** hurufu joined
[05:37] *** hurufu left
[05:38] *** hurufu joined
[05:44] <sibl> is it still briged with Discord ?

[05:44] <tellable6> 2026-07-20T03:51:02Z #raku <wayland76> sibl That has been mentioned as a problem.  

[06:02] *** sibl left
[06:02] *** sibl joined
[06:35] *** hwj joined
[06:44] *** sibl left
[06:44] *** sibl joined
[06:55] <wayland> m: multi MAIN ($x where 'a') { $x.say; }; multi MAIN ($x where 'b' ) { $x.say; }

[06:55] <camelia> rakudo-moar 6c5175469: OUTPUT: «Usage:␤  <tmp> <x>␤  <tmp> <x>␤»

[06:57] <wayland> xinming: Interesting!  I'm not sure I understand what you're trying to achieve though.  If we knew that, we might be able to help better.  

[07:06] *** Sgeo left
[07:26] *** kylese left
[07:31] *** kylese joined
[07:59] *** dakkar joined
[08:57] *** wayland left
[09:28] *** eseyman left
[10:06] *** sergot joined
[10:12] *** sibl left
[10:25] *** hurufu left
[10:25] *** hurufu joined
[10:32] *** sp1983 joined
[10:32] <sp1983> https://news.ycombinator.com/item?id=49004510

[10:35] *** sp1983 left
[10:58] *** manu_ joined
[10:58] *** manu_ is now known as eseyman

[12:40] *** hurufu left
[13:06] *** sftp left
[13:29] *** hurufu joined
[14:09] <ab5tract> Where clauses should fail loudly when you are using assign instead of equality

[14:10] <ab5tract> Though actually I’ve enjoyed using assignment in clever ways with where clauses. So maybe a worry is enough, as those are straightforward to suppress

[14:23] <timo> i think that's not an assignment but the default value

[14:33] *** acidsys left
[14:34] <Voldenet> m: multi MAIN ($x where "a"|"b" = "a") { $x.say; }; # xinming

[14:34] <camelia> rakudo-moar 6c5175469: OUTPUT: «a␤»

[14:35] <Voldenet> if you mean that you want "a" to be the default and also constraint, then you can't avoid duplication I think

[14:36] <Voldenet> m: constant a = "a"; multi MAIN ($x where a = a) { $x.say; }; # maybe this

[14:36] <camelia> rakudo-moar 6c5175469: OUTPUT: «a␤»

[14:38] <Voldenet> it doesn't entirely remove the duplication, but you can change the value in one spot

[14:42] <ugexe> a subset would read better

[14:42] <timo> where clauses on optional parameters have this problem of having to supply a default that matches the where clause :(

[14:52] <Voldenet> yeah, subset would definitely read better otherwise it's confusing syntax

[14:54] <Voldenet> usage generated is quite useless anyway

[14:55] *** acidsys joined
[14:59] *** Aedil left
[15:01] <Voldenet> otoh subset can be named and may show up in some usage contexts, e.g. `multi sub MAIN(SomeSubset :$x)` will show the subset name, and adding `#= ` comment will throw in default value

[15:05] <Voldenet> I wonder if usage could use some description for the subset instead of the type, in the case above it's always SomeSubset

[15:05] *** Aedil joined
[15:10] *** human-blip left
[15:12] *** human-blip joined
[15:34] *** hwj left
[15:35] *** hwj joined
[16:02] <timo> we can set a .WHY on the subset type can't we? that'd be sensible to output in the generated help / usage

[16:31] *** dakkar left
[16:46] *** Geth joined
[16:53] <Voldenet> possibly, I think currently it's always ^name: https://github.com/rakudo/rakudo/blob/main/src/core.c/Main.rakumod#L318

[17:01] <ugexe> that does seem to couple generated help output to .WHY in a way that wouldn't always make sense. for example the way i might describe a subset for a generated help may not be the same as i'd otherwise write to describe 'why'. describing the constraint in english feels more akin to describing 'what' 

[17:02] <timo> time to introduce .HUH

[17:02] <ugexe> although being able to do like `#| A string with 'a'` inside of the main signature itself on the parameter might be fine

[17:04] <timo> doing that doesn't already have an effect?

[17:05] <Voldenet> this is what I do and while it kind of works, it requires some typing

[17:06] <ugexe> yeah i guess it does work

[17:08] <Voldenet> especially if you repeat have a parameter inside multiple MAINs

[17:08] <Voldenet> s/have/;

[17:08] <Voldenet> I had this idea to support proto MAIN to make this slightly easier

[17:12] <ugexe> i tried to prototype a shared reusable signature thing that could flatten into another signature definition ala my $shared-sigs = |(...); MAIN(||$my-shared-sigs) { ... } but i gave up after hitting some compile time vs runtime impedance

[17:28] <[Coke]> Users: how do you use install/use rakudo? How often do you upgrade? (if you commit to any of moarvm/nqp/rakudo, your vote doesn't count for these purposes :)

[17:28] <Voldenet> m: my constant XY = :(Int $x, Str $y); BEGIN say XY # probably something like this

[17:28] <camelia> rakudo-moar 6c5175469: OUTPUT: «(Int $x, Str $y)␤===SORRY!===␤QAST::Block with cuid 1 has not appeared␤»

[17:28] <Voldenet> in fact signature can't become constant too

[17:30] <timo> [Coke]: builds georg who sits in a datacenter and builds every single commit, usually multiple times in a row, is an outlier adn shouldn't have been counted

[17:31] <[Coke]> c: abcd 3.say

[17:31] <committable6> [Coke], ¦abcd: «Cannot find this revision (did you mean “v6.c”?)»

[17:31] <[Coke]> c:  3.say

[17:31] <committable6> [Coke], I cannot recognize this command. See wiki for some examples: https://github.com/Raku/whateverable/wiki/Committable

[17:31] <[Coke]> c: 467694501 3.say

[17:31] <committable6> [Coke], ¦4676945: «3␤»

[17:31] <[Coke]> ^^ georg

[17:33] <timo> yup, that and our CI

[17:35] <Voldenet> on the VMs where I use rakudo I only update when I need a new feature or bugfix

[17:35] <Voldenet> I'm pretty sure that's how it goes for anything

[17:36] <[Coke]> I ask with the thought of reducing our release schedule from monthly.

[17:36] <[Coke]> to 4 to 6 times a year, or ad hoc, or..

[17:44] <Voldenet> the model of monthly releasing is not that popular, iirc java, golang and node release versions every 6 months

[17:45] <Voldenet> there are things like .net that update monthly, but there's been exceptions to this rule as well

[17:45] <Voldenet> so some patch releases were skipped

[18:21] <coleman> who is georg

[18:21] <timo> Spiders Georg

[18:22] <timo> https://en.wikipedia.org/wiki/Spiders_Georg actually has a wikipedia article!

[18:23] <coleman> okay I was very online in 2013 but this one missed me

[18:23] <timo> it's a delightful little joke

[19:08] *** elcaro left
[19:27] *** hurufu left
[20:10] *** hwj left
[20:12] <SmokeMachine> [Coke]: Could you tell me if any of these work for you? https://fco.github.io/Raku-Playground/webkit-3d-test.html

[20:22] <[Coke]> SmokeMachine: b-d all render

[20:22] <[Coke]> a does not (this on DDG on mac)

[20:22] <[Coke]> in chrome a-e all work.

[20:23] <[Coke]> firefox a-e work.

[20:23] <[Coke]> oh, wait. one sec.

[20:23] <[Coke]> yup. what I said

[20:29] <SmokeMachine> [Coke]: thanks!

[20:29] *** jjido joined
[20:41] <SmokeMachine> [Coke]: Can you see if it's working now? https://fco.github.io/Raku-Playground

[20:42] <[Coke]>   /win 12

[21:12] <[Coke]> verified jdv will eventually come back, but that's a few months out.

[21:13] <[Coke]> ww

[21:16] <SmokeMachine> [Coke]: please, let me know how it goes when you have time to test it...

[21:54] <[Coke]> that URL works the same as before on #6

[21:54] <[Coke]> the rock tile is colored by no rock.

[21:55] <[Coke]> (on DDG)

[21:55] <[Coke]> and it shows up if I find just the right viewing angle

[22:07] *** Sgeo joined
[22:34] *** jjido left
[23:01] *** human-blip left
[23:05] *** wayland76 joined
[23:10] <wayland76> Just a heads-up that one of my next projects (ie. something I'm probably going to release in the next month or two) is an addon called CommandObject that takes a different approach to self-documenting MAIN functions.  

[23:15] <wayland76> .tell [Coke]: As a user, I'm currently using rakubrew because my current projects require RakuAST and I need the bleeding edge.  When I move past that stage (hopefully after the 6.e release, though possibly after macros, depending on where things go), my preferred options would be a) OS package, and b) as a secondary option, a docker container that has raku in it (would be handy for installing different versions of Raku without needing rakubrew).  

[23:15] <tellable6> wayland76, I'll pass your message to [Coke]

[23:21] <wayland76> .tell [Coke]: And, while I tend to only update every, say, 1-3 months, I'm currently on latest, because there was a serious bug that was blocking me.  Given the current rate of development (RakuAST fixes) I'd encourage us to stick to monthly releases until at least 6.e.  

[23:21] <tellable6> wayland76, I'll pass your message to [Coke]

