[00:02] *** daemon left
[00:15] *** bdju left
[00:16] *** bdju joined
[00:19] *** Cabanossi left
[00:22] *** hungrydonkey left
[00:29] *** Cabanossi joined
[00:47] *** xinming left
[00:47] *** aborazmeh left
[00:48] *** xinming joined
[00:59] *** MasterDuke left
[01:01] *** aborazmeh joined
[01:01] *** aborazmeh left
[01:01] *** aborazmeh joined
[01:13] *** softmoth left
[01:31] *** sftp joined
[01:46] *** sftp left
[01:46] *** sftp joined
[01:58] *** ensamvarg_ joined
[01:59] *** poohman joined
[02:03] *** softmoth joined
[02:05] *** Manifest0 left
[02:06] *** Manifest0 joined
[02:13] *** Doc_Holliwood left
[02:25] *** softmoth_ joined
[02:27] *** softmoth left
[02:29] *** poohman left
[02:31] *** Cabanossi left
[02:32] *** aborazmeh left
[02:36] *** seance left
[02:36] *** seance joined
[02:39] *** Cabanossi joined
[02:42] *** aborazmeh joined
[02:42] *** aborazmeh left
[02:42] *** aborazmeh joined
[02:43] *** melezhik left
[02:49] *** aborazmeh left
[03:07] *** xinming left
[03:08] *** xinming joined
[03:49] *** rindolf joined
[04:49] *** coverable6 left
[04:49] *** bisectable6 left
[04:49] *** unicodable6 left
[04:49] *** quotable6 left
[04:49] *** reportable6 left
[04:49] *** evalable6 left
[04:49] *** releasable6 left
[04:49] *** nativecallable6 left
[04:49] *** shareable6 left
[04:49] *** sourceable6 left
[04:49] *** squashable6 left
[04:49] *** greppable6 left
[04:49] *** linkable6 left
[04:49] *** committable6 left
[04:49] *** notable6 left
[04:49] *** bloatable6 left
[04:49] *** statisfiable6 left
[04:49] *** benchable6 left
[04:49] *** tellable6 left
[04:50] *** greppable6 joined
[04:50] *** unicodable6 joined
[04:50] *** notable6 joined
[04:50] *** statisfiable6 joined
[04:50] *** benchable6 joined
[04:50] *** linkable6 joined
[04:51] *** evalable6 joined
[04:51] *** tellable6 joined
[04:52] *** bisectable6 joined
[04:52] *** releasable6 joined
[04:52] *** committable6 joined
[04:52] *** bloatable6 joined
[04:52] *** reportable6 joined
[04:52] *** quotable6 joined
[04:52] *** nativecallable6 joined
[04:52] *** squashable6 joined
[04:52] *** sourceable6 joined
[04:52] *** shareable6 joined
[04:52] *** coverable6 joined
[05:02] *** softmoth__ joined
[05:02] *** softmoth__ is now known as softmoth

[05:05] *** softmoth_ left
[05:45] *** softmoth left
[05:47] *** xinming left
[05:48] *** xinming joined
[05:54] *** mniip joined
[05:55] *** Doc_Holliwood joined
[06:13] *** xinming left
[06:14] *** xinming joined
[06:20] *** rindolf left
[06:26] <Geth_> ¦ doc: 0b4f443b71 | (Stoned Elipot)++ | util/xt-recent.sh

[06:26] <Geth_> ¦ doc: Do not use a local(?) git alias

[06:26] <Geth_> ¦ doc: 

[06:26] <Geth_> ¦ doc: while here simplify pipeline

[06:26] <Geth_> ¦ doc: review: https://github.com/Raku/doc/commit/0b4f443b71

[06:26] <Geth_> ¦ doc: 582a3a7133 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | util/xt-recent.sh

[06:26] <Geth_> ¦ doc: Merge pull request #3328 from Raku/xt-recent

[06:26] <Geth_> ¦ doc: 

[06:26] <Geth_> ¦ doc: Do not use a local(?) git alias

[06:26] <Geth_> ¦ doc: review: https://github.com/Raku/doc/commit/582a3a7133

[06:28] <Geth_> ¦ doc: 0b5ba69307 | (Stoned Elipot)++ | doc/Type/Compiler.pod6

[06:28] <Geth_> ¦ doc: Add Compiler.backend()

[06:28] <Geth_> ¦ doc: review: https://github.com/Raku/doc/commit/0b5ba69307

[06:28] <Geth_> ¦ doc: 047691220d | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | doc/Type/Compiler.pod6

[06:28] <Geth_> ¦ doc: Merge pull request #3324 from Raku/comp-backend

[06:28] <linkable6> Link: https://docs.raku.org/type/Compiler

[06:28] <Geth_> ¦ doc: 

[06:28] <Geth_> ¦ doc: Add Compiler.backend()

[06:28] <Geth_> ¦ doc: Thanks, but please refer to the corresponding issue in the future.

[06:28] <Geth_> ¦ doc: review: https://github.com/Raku/doc/commit/047691220d

[06:31] <Geth_> ¦ doc: 9d04f32134 | (Stoned Elipot)++ | 2 files

[06:31] <Geth_> ¦ doc: Document Str.index ignorecase/ignoremark

[06:31] <Geth_> ¦ doc: 

[06:31] <Geth_> ¦ doc: while here:

[06:31] <Geth_> ¦ doc: - Str.index is a method: adjust section heading and use it in examples

[06:31] <Geth_> ¦ doc: - revisit Cool.index description

[06:31] <Geth_> ¦ doc: review: https://github.com/Raku/doc/commit/9d04f32134

[06:31] <Geth_> ¦ doc: c020fecec2 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | 2 files

[06:31] <Geth_> ¦ doc: Merge pull request #3329 from Raku/str-index-i_m

[06:31] <Geth_> ¦ doc: 

[06:31] <Geth_> ¦ doc: Document Str.index ignorecase/ignoremark

[06:31] <Geth_> ¦ doc: Please also ref to existing issues (and mark as solved when accepted). I'll do these last two.

[06:31] <Geth_> ¦ doc: review: https://github.com/Raku/doc/commit/c020fecec2

[06:34] *** xinming left
[06:35] *** hungrydonkey joined
[06:36] *** xinming joined
[06:44] *** xinming left
[06:46] *** xinming joined
[06:48] *** rindolf joined
[06:53] *** seance left
[07:04] *** Sgeo_ joined
[07:08] *** Sgeo__ left
[07:09] *** xinming left
[07:10] *** xinming joined
[07:15] *** MasterDuke joined
[07:23] *** pecastro joined
[07:33] <Geth_> ¦ doc/str-starts-ends-i_m: f06f3847cf | (Stoned Elipot)++ | doc/Type/Str.pod6

[07:33] <Geth_> ¦ doc/str-starts-ends-i_m: Document Str's .starts-with and .ends-with ignorecase/ignoremark

[07:33] <Geth_> ¦ doc/str-starts-ends-i_m: 

[07:33] <Geth_> ¦ doc/str-starts-ends-i_m: Refs #3229

[07:33] <Geth_> ¦ doc/str-starts-ends-i_m: review: https://github.com/Raku/doc/commit/f06f3847cf

[07:33] <Geth_> ¦ doc: stoned++ created pull request #3331: Document Str's .starts-with and .ends-with ignorecase/ignoremark

[07:33] <Geth_> ¦ doc: review: https://github.com/Raku/doc/pull/3331

[07:34] *** sjm_uk joined
[07:38] *** sena_kun joined
[07:48] *** k-man__ joined
[07:49] *** k-man_ left
[07:52] *** xinming left
[07:52] *** xinming joined
[07:58] *** stoned75 left
[08:11] *** stoned75 joined
[08:16] *** pecastro left
[08:31] *** Redfoxmoon left
[08:37] *** Redfoxmoon joined
[08:39] *** Altai-man_ joined
[08:42] *** sena_kun left
[08:49] *** Redfoxmoon left
[08:49] *** Redfoxmoon joined
[08:59] *** chloekek joined
[09:03] *** rindolf left
[09:05] *** rindolf joined
[09:06] *** hungrydonkey left
[09:07] *** Benett joined
[09:10] *** hungrydonkey joined
[09:23] *** Sgeo__ joined
[09:26] *** Sgeo_ left
[09:26] <Geth_> ¦ doc/str-contains-i_m: caf425b428 | (Stoned Elipot)++ | doc/Type/Str.pod6

[09:26] <Geth_> ¦ doc/str-contains-i_m: Document Str.contains ignorecase/ignoremark

[09:26] <Geth_> ¦ doc/str-contains-i_m: 

[09:26] <Geth_> ¦ doc/str-contains-i_m: Refs #3229

[09:26] <Geth_> ¦ doc/str-contains-i_m: 

[09:26] <Geth_> ¦ doc/str-contains-i_m: While here note that Str.contains' Regex support is also available since

[09:26] <Geth_> ¦ doc/str-contains-i_m: Rakudo version 2020.02.

[09:26] <Geth_> ¦ doc/str-contains-i_m: review: https://github.com/Raku/doc/commit/caf425b428

[09:27] <Geth_> ¦ doc: stoned++ created pull request #3332: Document Str.contains ignorecase/ignoremark

[09:27] <Geth_> ¦ doc: review: https://github.com/Raku/doc/pull/3332

[09:30] <Geth_> ¦ doc: f06f3847cf | (Stoned Elipot)++ | doc/Type/Str.pod6

[09:30] <Geth_> ¦ doc: Document Str's .starts-with and .ends-with ignorecase/ignoremark

[09:30] <Geth_> ¦ doc: 

[09:30] <Geth_> ¦ doc: Refs #3229

[09:30] <Geth_> ¦ doc: review: https://github.com/Raku/doc/commit/f06f3847cf

[09:30] <linkable6> Link: https://docs.raku.org/type/Str

[09:30] <Geth_> ¦ doc: c799e9f0e8 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | doc/Type/Str.pod6

[09:30] <Geth_> ¦ doc: Merge pull request #3331 from Raku/str-starts-ends-i_m

[09:30] <linkable6> DOC#3229 [open]: https://github.com/Raku/doc/issues/3229 [docs][new] Changes and additions for 2020.02

[09:30] <Geth_> ¦ doc: 

[09:30] <Geth_> ¦ doc: Document Str's .starts-with and .ends-with ignorecase/ignoremark

[09:30] <Geth_> ¦ doc: review: https://github.com/Raku/doc/commit/c799e9f0e8

[09:35] *** rbt left
[09:35] *** rbt joined
[09:42] *** sjm_uk left
[09:43] *** sjm_uk joined
[10:05] <chloekek> Oh I’m so confused again by containers.

[10:06] <chloekek> p6: my %h = a => '1,2,3'; %h<a> .= split(',').Array; for %h<a> { .say }

[10:06] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «The iterator of this Seq is already in use/consumed by another Seq␤(you might solve this by adding .cache on usages of the Seq, or␤by assigning the Seq into an array)␤  in block <unit> at <tmp> line 1␤␤»

[10:06] <chloekek> p6: my %h = a => '1,2,3'; %h<a> .= split(',').Array; for %h<a>[] { .say }

[10:06] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «The iterator of this Seq is already in use/consumed by another Seq␤(you might solve this by adding .cache on usages of the Seq, or␤by assigning the Seq into an array)␤  in block <unit> at <tmp> line 1␤␤»

[10:06] <chloekek> p6: my %h = a => '1,2,3'; %h<a> .= split(',').Array; for @(%h<a>) { .say }

[10:06] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «The iterator of this Seq is already in use/consumed by another Seq␤(you might solve this by adding .cache on usages of the Seq, or␤by assigning the Seq into an array)␤  in block <unit> at <tmp> line 1␤␤»

[10:06] <chloekek> p6: my %h = a => '1,2,3'; %h<a> .= split(',').cache; for %h<a>[] { .say }

[10:06] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «1␤2␤3␤»

[10:06] <chloekek> p6: my %h = a => '1,2,3'; %h<a> .= split(',').cache; for %h<a> { .say }

[10:06] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «(1 2 3)␤»

[10:07] <chloekek> p6: my %h = a => '1,2,3'; %h<a> .= split(',').cache; for %h<a>[] { .say }

[10:07] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «1␤2␤3␤»

[10:08] <chloekek> It doesn’t work on my machine.

[10:09] <chloekek> If I bind instead of .= then it works, as usual.

[10:10] <chloekek> Silly me made the mistake of assigning instead of binding and was bitten.

[10:13] <chloekek> If you never introduce containers then you never get problems caused by containers. 👌

[10:40] *** sena_kun joined
[10:42] *** Altai-man_ left
[10:43] *** hungryd83 joined
[10:47] *** hungrydonkey left
[10:49] <AlexDaniel> chloekek: oh… I think it's .= that is causing your problem

[10:49] <AlexDaniel> p6: my %h = a => '1,2,3'; %h<a> = %h<a>.split(',').Array; for %h<a> { .say }

[10:49] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «[1 2 3]␤»

[10:49] <AlexDaniel> chloekek: I think it does (%h<a> .= split(',')).Array

[10:50] <AlexDaniel> another way to do it would be, ummm

[10:50] <AlexDaniel> p6: my %h = a => '1,2,3'; %h<a> .= split(',') .= Array; for %h<a> { .say }

[10:50] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «[1 2 3]␤»

[10:50] <chloekek> lol

[10:51] <AlexDaniel> greppable6: \.=.*\.

[10:51] <greppable6> AlexDaniel, 662 lines, 160 modules: https://gist.github.com/0851b5a011e5500c926872236453f3a4

[10:52] <AlexDaniel> lizmat: are you sure that this does what you think? :) https://github.com/moritz/perl6-all-modules/blob/08c1a2471fcb8508881862f88cb348c464745f42/cpan/ELIZABETH/List-MoreUtils/lib/List/MoreUtils.pm6#L335

[10:52] <AlexDaniel> https://github.com/moritz/perl6-all-modules/blob/08c1a2471fcb8508881862f88cb348c464745f42/cpan/HYTHM/Grid/lib/Grid.pm#L398

[10:53] <AlexDaniel> m: my @indices = <a b c d a c d>; @indices .= sort.unique; say @indices

[10:53] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «[a a b c c d d]␤»

[10:53] <AlexDaniel> hah

[10:53] <chloekek> Compiler should probably give an error or at least a warning.

[10:53] <AlexDaniel> yeah, it's a construct that is visually ambiguous

[10:53] <AlexDaniel> or deceptive I should say

[10:54] <chloekek> This is not your average trap. :þ

[10:54] <lizmat> m: my @a = <a b c d>; @a .= sort.List; dd @a

[10:54] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «Array @a = ["a", "b", "c", "d"]␤»

[10:54] <lizmat> m: my @a = <a b b c c c d d d d>; @a .= sort.unique; dd @a

[10:54] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «Array @a = ["a", "b", "b", "c", "c", "c", "d", "d", "d", "d"]␤»

[10:55] <lizmat> yup, that's probably not what was intended  :-)

[10:55] <AlexDaniel> chloekek: can you file two tickets? One for the docs so that it can be documented as a trap, another for rakudo/rakudo so that we can make it issue a warning or something

[10:56] <chloekek> On it!

[10:58] <AlexDaniel> doesn't look like a very common trap, although I remember doing it multiple times in my own code…

[11:03] <lizmat> m: my @a = <a b b c c c d d d d>; @a .= sort .= unique; dd @a

[11:03] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «Array @a = ["a", "b", "c", "d"]␤»

[11:03] <lizmat> I wonder how much magic it would be considered to have the above codegenned automatically

[11:04] <chloekek> AlexDaniel: https://github.com/rakudo/rakudo/issues/3621

[11:04] *** natrys joined
[11:06] <lizmat> chloekek++

[11:07] <chloekek> Maybe .= should be looser than .

[11:07] <AlexDaniel> thanks

[11:07] <chloekek> Just like += is looser than .

[11:09] <AlexDaniel> m: my @indices = <a b c d a c d>; @indices .= sort . unique; say @indices

[11:09] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «[a a b c c d d]␤»

[11:09] <AlexDaniel> m: my @indices = <a b c d a c d>; @indices [.]= sort.unique; say @indices

[11:09] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Malformed postfix call␤at <tmp>:1␤------> 3 @indices = <a b c d a c d>; @indices [.7⏏5]= sort.unique; say @indices␤»

[11:10] <AlexDaniel> m: my $x = 5; $x [+]= 2; say $x

[11:10] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «7␤»

[11:10] <AlexDaniel> chloekek: it looks like an operator but the fake is coming through x)

[11:26] *** aborazmeh joined
[11:26] *** aborazmeh left
[11:26] *** aborazmeh joined
[11:35] *** hungryd83 left
[11:35] *** hungrydonkey joined
[11:38] *** lgtaube left
[11:43] <chloekek> So this works: ==> map ({ %^a<meta-tags> .= split(',') .= grep(?*) .= cache; %^a })

[11:44] <cpan-raku> New module released to CPAN! List::MoreUtils (0.0.7) by 03ELIZABETH

[11:44] <chloekek> And it works even without zen slice, for some reason: for %archive<meta-tags> { … }

[11:45] <AlexDaniel> chloekek: what about using .eager

[11:46] <AlexDaniel> instead of .cache

[11:46] <chloekek> I still don’t understand the difference between list, cache and eager.

[11:46] <AlexDaniel> no idea

[11:46] <chloekek> Or how .lazy works, how can a postfix method call turn something lazy?

[11:46] <AlexDaniel> you can also do .List

[11:47] <chloekek> I’d like to just assign it to my @ because I know what that does when given a Seq.

[11:47] <chloekek> But that’s not pleasant with .= :)

[11:49] <AlexDaniel> chloekek: I don't even know the difference between a List and a Seq, so…

[11:49] <AlexDaniel> chloekek: because a list can be lazy, I think? And a Seq can be cached? So they're the same? What? I don't know.

[11:50] <chloekek> Seq can be iterated once, List as many times as you want

[11:50] <chloekek> So List necessarily remembers produced elements

[11:50] <chloekek> If you call .cache on a Seq, then it returns a List, and the same List every time.

[11:50] <chloekek> I guess if you call .list instead of .cache it will create a new List.

[11:51] <AlexDaniel> m: my $foo = <a b c>.split(‘ ’); say WHAT $foo; say $foo; say $foo

[11:51] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «(Seq)␤(a b c)␤(a b c)␤»

[11:51] <AlexDaniel> didn't I just iterate a seq twice?

[11:52] <chloekek> Maybe you can /shrug

[11:52] <AlexDaniel> chloekek: no, .list won't necessarily return a list, but .List should (although it sometimes doesn't?)

[11:52] <chloekek> p6: my $foo = 'a b c'.split(' ').grep(?*); say $foo; say $foo

[11:52] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «(a b c)␤(a b c)␤»

[11:52] <chloekek> What does <a b c>.split(' ') mean?

[11:53] <chloekek> p6: say <a b c>.split(' ').raku

[11:53] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «("a", "b", "c").Seq␤»

[11:53] <AlexDaniel> oh I mean't ‘’ instead of < > whoops

[11:53] <AlexDaniel> but it's the same I think

[11:53] <AlexDaniel> because it'll probably stringify a list first

[11:54] <chloekek> p6: my $foo = 'a b c'.split(' ') but role { method list { die } }; say $foo

[11:54] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «(a b c)␤»

[11:54] <chloekek> p6: my $foo = 'a b c'.split(' ') but role { method cache { die } }; say $foo

[11:54] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «Died␤  in method cache at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»

[11:54] <AlexDaniel> much like .contains on a list used to return what you didn't mean by stringifying first

[11:54] <chloekek> .gist calls .cache hence

[11:54] <chloekek> p6: my $foo := 'a b c'.split(' '); for $foo { }; for $foo { }

[11:54] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «The iterator of this Seq is already in use/consumed by another Seq␤(you might solve this by adding .cache on usages of the Seq, or␤by assigning the Seq into an array)␤  in block <unit> at <tmp> line 1␤␤»

[11:54] <chloekek> So say works because it calls .cache, but for doesn't because it directly iterates the Seq.

[11:54] <AlexDaniel> okay so you can't iterate it unless something automatically calls .cache on it

[11:55] <AlexDaniel> more than once that is

[11:55] <chloekek> p6: my $foo := 'a b c'.split(' '); $foo.cache; for $foo { }

[11:55] <camelia> rakudo-moar d8f2c30b1: ( no output )

[11:55] <chloekek> p6: my $foo := 'a b c'.split(' '); $foo.cache; for $foo { }; for $foo { }

[11:55] <camelia> rakudo-moar d8f2c30b1: ( no output )

[11:57] <AlexDaniel> so why do we have lazy lists instead of just using cached seqs?

[11:57] <chloekek> Seqs aren't Positional.

[11:57] <AlexDaniel> I mean, sure, because it uses something something for the implementation, but the user-facing stuff is rather confusing

[11:58] <AlexDaniel> m: my $foo := 'a b c'.split(' '); say $foo[1]; say $foo[0]

[11:58] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «b␤a␤»

[11:58] <AlexDaniel> looks positional to me?

[11:59] <chloekek> p6: my @foo := 'a b c'.split(' ')

[11:59] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «Type check failed in binding; expected Positional but got Seq ($(("a", "b", "c").Seq))␤  in block <unit> at <tmp> line 1␤␤»

[11:59] <chloekek> It implements AT-POS but it does not do Positional

[12:00] <AlexDaniel> p6: my @foo := 'a b c'.split(' ').list

[12:00] <camelia> rakudo-moar d8f2c30b1: ( no output )

[12:00] <AlexDaniel> p6: my @foo := 'a b c'.split(' ').list; dd @foo

[12:00] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «("a", "b", "c")␤»

[12:00] <AlexDaniel> p6: my @foo := 'a b c'.split(' ').list; say WHAT @foo

[12:00] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «(List)␤»

[12:01] <AlexDaniel> p6: my @foo := 'a b c'.split(' ').cache; dd @foo

[12:01] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «("a", "b", "c")␤»

[12:01] <AlexDaniel> p6: dd 'a b c'.split(' ').cache

[12:01] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «("a", "b", "c")␤»

[12:01] <AlexDaniel> p6: my $x = 'a b c'.split(' '); say $x[0]; dd $x

[12:01] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «a␤Seq $x = $(("a", "b", "c").Seq)␤»

[12:02] <AlexDaniel> p6: my $x = 'a b c'.split(' '); $x.cache; dd $x

[12:02] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «Seq $x = $(("a", "b", "c").Seq)␤»

[12:02] <lizmat> PositionalBindFailover

[12:03] <chloekek> Seq is a wrapper around Iterator and a list, apparently.

[12:03] <chloekek> p6: .say for Seq.^attributes

[12:03] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «Iterator $!iter␤Mu $!list␤»

[12:03] <AlexDaniel> chloekek: so .cache returns a List, but actually the Seq itself becomes cached. So you can do just $x.cache; and there's no need to assign it

[12:04] <AlexDaniel> chloekek: which is why `$foo .= .grep().cache;` works

[12:04] <chloekek> Yes PositionalBindFailover.cache assigns to $!list.

[12:04] <chloekek> .list uses $!list, or creates a new one if $!list is not set.

[12:04] <AlexDaniel> m: my $foo := ‘a b c’.split(‘ ’); $foo.cache; say WHAT $foo; .say for $foo.list; .say for $foo.list

[12:04] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «(Seq)␤a␤b␤c␤a␤b␤c␤»

[12:04] <AlexDaniel> m: my $foo := ‘a b c’.split(‘ ’); $foo .= cache; say WHAT $foo; .say for $foo.list; .say for $foo.list

[12:04] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «Cannot modify an immutable Seq ((a b c))␤  in block <unit> at <tmp> line 1␤␤»

[12:04] <chloekek> .list and .cache are identical, except that .cache sets $!list the first time.

[12:04] <AlexDaniel> m: my $foo = ‘a b c’.split(‘ ’); $foo .= cache; say WHAT $foo; .say for $foo.list; .say for $foo.list

[12:04] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «(List)␤a␤b␤c␤a␤b␤c␤»

[12:05] <AlexDaniel> m: my $foo = ‘a b c’.split(‘ ’); $foo.cache; say WHAT $foo; .say for $foo.list; .say for $foo.list

[12:05] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «(Seq)␤a␤b␤c␤a␤b␤c␤»

[12:05] <chloekek> p6: my $foo := 'a b c'.split(' '); $foo.list; say $foo

[12:05] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «The iterator of this Seq is already in use/consumed by another Seq␤(you might solve this by adding .cache on usages of the Seq, or␤by assigning the Seq into an array)␤  in block <unit> at <tmp> line 1␤␤»

[12:05] <AlexDaniel> sourceable6: a b c’.split(‘ ’).cache()

[12:05] <sourceable6> AlexDaniel, No idea, boss. Can you give me a Code object? Output: https://gist.github.com/de941db8bad242ce67deda823fdb80c6

[12:05] <AlexDaniel> sourceable6: ‘a b c’.split(‘ ’).cache()

[12:05] <sourceable6> AlexDaniel, https://github.com/rakudo/rakudo/blob/d8f2c30/src/core.c/Sequence.pm6#L24

[12:05] <chloekek> I suggest looking at the implementation: Seq.pm6 and Sequence.pm6.

[12:05] <chloekek> This made clear to me what happens.

[12:06] <chloekek> And how .cache, .list and .iterator work.

[12:11] <chloekek> AlexDaniel: Nevermind, I do need the zen slice.

[12:12] <AlexDaniel> chloekek: why do you *need* the zen slice? :)

[12:13] <chloekek> %archive<meta-tags> is a scalar container containing a list.

[12:13] <chloekek> for %archive<meta-tags> will loop only once.

[12:13] <chloekek> for %archive<meta-tags>[] will actually loop.

[12:14] <AlexDaniel> what about `for %archive<meta-tags>.list` ?

[12:14] <chloekek> That works too.

[12:14] <AlexDaniel> oh, [] doesn't cache

[12:15] <chloekek> %archive<meta-tags> is already a list.

[12:15] <chloekek> It’s just wrapped in a scalar container.

[12:15] <AlexDaniel> but [*] does. Interesting

[12:16] <chloekek> p6: my %a = meta-tags => 'a,b,c'; %a<meta-tags> .= split(',') .= cache; for %a<meta-tags> { .raku.put }

[12:16] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «$("a", "b", "c")␤»

[12:16] <chloekek> p6: my %a = meta-tags => 'a,b,c'; %a<meta-tags> .= split(',') .= cache; for %a<meta-tags>[] { .raku.put }

[12:16] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «"a"␤"b"␤"c"␤»

[12:17] <AlexDaniel> TIL []

[12:17] <synthmeat> (sorry for interrupting) is there a way to get, for a grapheme's .fc, a list of graphemes comparison would return true?

[12:18] <AlexDaniel> synthmeat: you mean like reverse-search for what foldcase resolves to?

[12:18] <synthmeat> yes

[12:19] <AlexDaniel> synthmeat: I think you'll need to make a lookup table for that yourself

[12:20] <synthmeat> but it's in there somewhere already!

[12:20] <AlexDaniel> synthmeat: I don't know if that thing is viable in general, does unicode have any rules for multichar .fc conversions? Like can two characters .fc to a single one in some conditions?

[12:20] <synthmeat> yes

[12:20] <synthmeat> ß and ss

[12:20] *** chloekek left
[12:20] <AlexDaniel> synthmeat: where? We only know how to .fc a string, we don't know how to go backwards

[12:21] *** chloekek joined
[12:21] <AlexDaniel> synthmeat: when you .fc both strings we just compare if they're the same

[12:21] <AlexDaniel> I mean, technically you do the comparison :)

[12:21] <jnthn> Indeed, I believe the mappings are only stored in the direction needed to implement .fc

[12:21] <AlexDaniel> samcv: ↑

[12:21] <chloekek> I don’t understand why array and hash elements are containerized.

[12:21] <chloekek> It’s certainly not needed for mutation:

[12:22] <chloekek> p6: my @x = 1,; @x[0] := 2; @x[0] := 3; say @xs

[12:22] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Variable '@xs' is not declared␤at <tmp>:1␤------> 3my @x = 1,; @x[0] := 2; @x[0] := 3; say 7⏏5@xs␤»

[12:22] <chloekek> p6: my @x = 1,; @x[0] := 2; @x[0] := 3; say @x

[12:22] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «[3]␤»

[12:23] <chloekek> p6: my @x = 1,; @x[0] := 2; @x[0] := (1,2,3); say @x.raku

[12:23] <camelia> rakudo-moar d8f2c30b1: OUTPUT: «[(1, 2, 3),]␤»

[12:23] <jnthn> How else would you assign to them?

[12:24] <chloekek> Overload the []= and {}= operators.

[12:24] <chloekek> That's what Ruby does, and it does not suffer from the for %h<k> issue.

[12:25] *** aindilis left
[12:25] <jnthn> That only handles the case where the assignment appears literally like that, not all of the more indirect cases

[12:27] <jnthn> For example, @a[$i]++ is postfix:<++>(@a[$i]), where the operator takes the argument `is rw` and assigns the successor into it.

[12:27] <chloekek> I guess I’ll just write Raku::Critic and have it complain about using hash elements in for loops without zen slice.

[12:28] *** aindilis joined
[12:30] <AlexDaniel> chloekek: yeah, I really want Raku::Critic. Maybe jnthn++'s work will help with that

[12:30] <AlexDaniel> cuz the language is definitely not foolproof enough for the fool I am :)

[12:33] <AlexDaniel> synthmeat: it's not hard to implement that, but it takes a few seconds to build the table: perl6 -e 'my %fc-reverse-lookup; for 0..0x10FFFF { %fc-reverse-lookup{.chr.fc}.push: .chr }; say ‘Done!’; for lines() { say %fc-reverse-lookup{.fc} }'

[12:36] <synthmeat> oh, nice! /me tries to play with it

[12:37] <AlexDaniel> Here's the table of things that resolve to multiple characters: https://gist.github.com/AlexDaniel/81f64e40d62cfb5796170940c226aee4

[12:38] <AlexDaniel> hah non-ascii version of the ff operator ﬀ

[12:38] <AlexDaniel> I'm kidding, of course

[12:39] *** Altai-man_ joined
[12:42] *** sena_kun left
[12:44] <AlexDaniel> unidump: 流流流流

[12:44] <unicodable6> AlexDaniel, https://gist.github.com/4cb3f934c6bc1809b4ac9451d0a2d39a

[12:46] *** aborazmeh left
[12:47] *** aindilis left
[12:57] <chloekek> p6: say ::('Str').raku;

[12:57] <camelia> rakudo-moar f987cdb0b: OUTPUT: «Str␤»

[12:57] <chloekek> p6: say ::($_).raku given 'Str';

[12:57] <camelia> rakudo-moar f987cdb0b: OUTPUT: «Str␤»

[13:06] *** aborazmeh joined
[13:06] *** aborazmeh left
[13:06] *** aborazmeh joined
[13:10] *** rbt left
[13:11] *** rbt joined
[13:31] <Doc_Holliwood> m: multi foo($x) { $x.say }; foo(123)

[13:31] <camelia> rakudo-moar f987cdb0b: OUTPUT: «123␤»

[13:32] <Doc_Holliwood> m: multi foo($x) { $x.say }; foo.WHAT.say

[13:32] <camelia> rakudo-moar f987cdb0b: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Calling foo() will never work with any of these multi signatures:␤    ($x)␤at <tmp>:1␤------> 3multi foo($x) { $x.say }; 7⏏5foo.WHAT.say␤»

[13:32] <Doc_Holliwood> m: multi foo($x) { $x.say }; (&foo).WHAT.say

[13:32] <camelia> rakudo-moar f987cdb0b: OUTPUT: «(Sub)␤»

[13:32] <Doc_Holliwood> m: multi foo($x) { $x.say }; (foo).WHAT.say

[13:32] <camelia> rakudo-moar f987cdb0b: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Calling foo() will never work with any of these multi signatures:␤    ($x)␤at <tmp>:1␤------> 3multi foo($x) { $x.say }; (7⏏5foo).WHAT.say␤»

[13:32] <Doc_Holliwood> m: foo($x) { $x.say }; (&foo).WHAT.say

[13:32] <camelia> rakudo-moar f987cdb0b: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Variable '$x' is not declared␤at <tmp>:1␤------> 3foo(7⏏5$x) { $x.say }; (&foo).WHAT.say␤»

[13:33] <Doc_Holliwood> so, you can omit the "sub" when you use "multi"?

[13:34] <Doc_Holliwood> m: class Foo { multi foo($x) { $x.say }; }; Foo.new.foo(123)

[13:34] <camelia> rakudo-moar f987cdb0b: OUTPUT: «No such method 'foo' for invocant of type 'Foo'␤  in block <unit> at <tmp> line 1␤␤»

[13:34] <Doc_Holliwood> m: class Foo { multi sub foo($x) { $x.say }; }; Foo.new.foo(123)

[13:34] <camelia> rakudo-moar f987cdb0b: OUTPUT: «No such method 'foo' for invocant of type 'Foo'␤  in block <unit> at <tmp> line 1␤␤»

[13:34] <Doc_Holliwood> interesting

[13:36] <MasterDuke> yeah. think it is mentioned in the docs somewhere

[13:41] <AlexDaniel> and I can never remember if it defaults to multi sub or multi method

[13:43] <chloekek> proto and multi default to sub.

[13:46] *** k-man__ left
[13:51] *** k-man__ joined
[13:54] *** Redfoxmoon left
[13:54] *** Redfoxmoon joined
[13:58] *** melezhik joined
[14:01] *** melezhik40 joined
[14:01] *** melezhik40 is now known as melezhik2

[14:01] *** redable joined
[14:01] *** redable left
[14:02] *** redable joined
[14:02] *** mowcat joined
[14:02] *** redable left
[14:03] *** melezhik left
[14:05] *** abraxxa joined
[14:06] *** Redfoxmoon left
[14:06] *** Redfoxmoon joined
[14:10] *** abraxxa left
[14:10] *** abraxxa joined
[14:10] *** aborazmeh left
[14:11] *** molaf joined
[14:15] <El_Che> jnthn: comma does intellij to crash when open projects, also non raku projects: https://gist.github.com/nxadm/6e1de81afbd98d4f252c6d2fc4b17b3a

[14:16] <El_Che> jnthn: an upgrade to the freshly releases Intellij 2020.1, Linux amd64, Ubuntu 19.10

[14:16] *** mowcat left
[14:18] <El_Che> jnthn: comma community 2020.01.0 plugin

[14:20] *** lucasb joined
[14:21] <Altai-man_> El_Che, do you just report it or was expecting it to work?

[14:21] <El_Che> Altai-man_: I don't understand the question

[14:21] <Altai-man_> sorry, my grammar...

[14:21] <Altai-man_> El_Che, are you saying "Just FYI, this isn't working" or "I installed new idea and the plugin doesn't work!"?

[14:22] <Altai-man_> 2020.01 is very fresh and we don't support iet yet, 2019.03 is the latest supported version, I think.

[14:22] <Altai-man_> s/iet/it/

[14:22] <El_Che> both

[14:22] <El_Che> I just reinstalled the plugin. It does not work, but it does not crash other languages

[14:23] <El_Che> kind of a headup that 2020.01 is out and many will upgrade

[14:23] <Altai-man_> >NoClassDefFoundError: com/intellij/ide/util/projectWizard/SourcePathsBuilder

[14:24] <Altai-man_> El_Che, next release will probably support it, though still no idea. Thanks for reporting.

[14:25] <El_Che> OK, I reinstalled and enabled. It crashes other projects.

[14:26] <El_Che> (other == other langs)

[14:26] <Altai-man_> Alas, it won't work regardless of what you do.

[14:27] <El_Che> plugin do have some sort of supported versions, I think. Maybe for the feature it's good be a good idea to mark the plugin as such. If I recall correctly you get warned at upgrade time if the plugins are incompatible

[14:30] <El_Che> Altai-man_: I heard there were some problems with signing on MacOS?

[14:31] <Altai-man_> Yes, but during migration to 2019.03 we don't used deprecated API, which is why I am disappointed but not surprised they broke things by removing parts not marked as deprecated.

[14:31] <Altai-man_> El_Che, AFAIK, they were resolved and latest release is available on macos.

[14:32] <melezhik2> chloekek: how can I install locally built Raku nix package? - https://gist.github.com/melezhik/48fd3ea8a6944447400562cc4c2e0de9 

[14:32] <melezhik2> nix-env   -iA Test-Mock

[14:33] <melezhik2> error: attribute 'Test-Mock' in selection path 'Test-Mock' not found

[14:33] <melezhik2> looks like

[14:33] <melezhik2> nix-env  -f . -iA Test-Mock

[14:33] <melezhik2> woks fine

[14:34] <melezhik2> now the question is, how can use this raku module? 

[14:34] <chloekek> I have no idea, I never use nix-env.

[14:34] <melezhik2> perl6 -MTest::Mork 

[14:34] <melezhik2> through an error

[14:34] *** cpan-raku left
[14:34] <melezhik2> throw

[14:34] <chloekek> I think nix-env defaults to looking up on nixpkgs.

[14:34] <lizmat> ,.oO( Test::Mindy )

[14:34] <chloekek> Try nix-env -f default.nix -iA Test-Mock

[14:34] <melezhik2> https://gist.github.com/melezhik/48fd3ea8a6944447400562cc4c2e0de9#gistcomment-3252512

[14:35] <melezhik2> like I said "nix-env -f . -iA Test-Mock" works as well, now how can I test that module is successfully used by raku?

[14:36] <melezhik2> now I am using my system installed rakudo, which is probably wrong 

[14:36] *** cpan-raku joined
[14:36] *** cpan-raku left
[14:36] *** cpan-raku joined
[14:36] <chloekek> I never use imperative installation commands, but what you can do is: PERL6LIB=$(< /nix/store/14p68llhai20xh2673pk2gq5cacccycy-Test-Mock/PERL6LIB) perl6 -MTest::Mock

[14:37] <melezhik2> ahh , it's ok, but how do you use those modules on your system? don't you alter PERL6LIV every time?

[14:37] <chloekek> Ideally you would be able to do this: nix-shell -p 'rakuWithPackages (p: [ p.Test-Mock ])' --run perl6, like you can do with Python and Perl, but this is not yet implemented.

[14:37] <melezhik2> it's impossible (-; 

[14:38] <chloekek> I use them by building the programs that depend on them with Nix as well.

[14:38] <chloekek> If a Raku distribution has a bin directory, then each file in there will end up in PATH if you install it.

[14:38] <chloekek> Libraries by themselves are not useful outside of programs that depend on them. Except for the case of REPLs, but I don’t use REPLs either, so I never got to implement that.

[14:39] <melezhik2> I am not concerned with PATH , it seems no problem with it in nix

[14:39] <melezhik2> I am talking about PERL6LIB

[14:39] <chloekek> I don’t think nix-env -i can arbitrarily adjust environment variables such as PERL6LIB.

[14:39] <melezhik2> you're right, it does not

[14:39] <melezhik2> this is why I am asking

[14:39] <El_Che> Altai-man_: Just discovered Jetbrains Toolbox that lets you rollback intellij versions

[14:40] <melezhik2> looks like the only option in nix-shell/ nix run

[14:40] <chloekek> So if you want to have a REPL with a Raku package in scope, you must build a REPL that has it in scope.

[14:40] <melezhik2> to test Nix raku distribtutions

[14:40] <chloekek> Which you can do. I can write an example for that.

[14:40] <melezhik2> yeah

[14:40] <melezhik2> it's abit trickier then I'd expected ;-) 

[14:41] *** sena_kun joined
[14:41] <melezhik2> error: undefined variable 'rakuWithPackages' at (string):1:94

[14:41] <melezhik2> when I run "nix-shell -p 'rakuWithPackages (p: [ p.Test-Mock ])' --run perl6"

[14:42] <melezhik2> and btw, should I install nix rakudo?

[14:42] *** Altai-man_ left
[14:43] *** hungryd85 joined
[14:43] *** hungrydonkey left
[14:48] <chloekek> Yes, I just said I still have to implement that.

[14:48] <chloekek> Which I have now done!

[14:48] <melezhik2> sure

[14:48] <chloekek> You can now write this with the latest raku-nix: nix-shell -p '(import ./. {}).rakuWithPackages (p: [ p.Test-Mock ])' --run 'perl6 -MTest::Mock'

[14:49] <chloekek> As well as this: nix-build -E '(import ./. {}).rakuWithPackages (p: [ p.Test-Mock ])' && result/bin/perl6 -MTest::Mock

[14:49] <melezhik2> btw, I wonder why not just `nix run -c "raku -MTest-Mock -e 1"` ?

[14:49] <chloekek> nix run only sets PATH.

[14:50] <melezhik2> ah, ok

[14:50] <melezhik2> I guessed that

[14:50] <melezhik2> an error after your last commit - https://gist.github.com/melezhik/48fd3ea8a6944447400562cc4c2e0de9#gistcomment-3252530

[14:51] <chloekek> Put (import ./. {}). before rakuPackages

[14:51] *** MasterDuke left
[14:53] <melezhik2> yeah. it works now, though I don't understand (-: the meaning of the construction 

[14:53] <melezhik2> https://gist.github.com/melezhik/48fd3ea8a6944447400562cc4c2e0de9#gistcomment-3252539

[14:53] <melezhik2> :-)

[14:54] <chloekek> So the way it works is:

[14:54] *** Doc_Holliwood left
[14:54] <chloekek> When you build a Raku package with rakuPackage, it creates an output directory that has the precompiled MoarVM bytecode in it, in the directory format that Rakudo uses to import precompiled modules. As well as a file PERL6LIB that lists all the dependencies.

[14:55] *** guifa2 joined
[14:55] <guifa2> o/

[14:55] <chloekek> What rakuWithPackages does is: it generates a Bash script that forwards all arguments to perl6, after setting PERL6LIB to the concatenated contents of the PERL6LIB files in each output directory of each package you give it.

[14:58] <chloekek> You can see this if you do: nix-build -E '(import ./. {}).rakuWithPackages (p: [ p.Test-Mock ])' && cat result/bin/perl6

[15:04] <chloekek> Wrapping programs to set environment variables is such a common operation in Nix that it has a function makeWrapper that does exactly this. rakuWithPackages calls makeWrapper.

[15:05] *** abraxxa left
[15:06] *** hungryd85 left
[15:06] *** abraxxa joined
[15:08] *** hungrydonkey joined
[15:08] <melezhik2> thanks. I need time to understand all of that, so far look like - "nix-shell -p '(import ./. {}). rakuWithPackages (p: [ p.Test-Mock ])' --run "perl6 -MTest::Mock2 -e 1"" is what I was looking for

[15:08] *** chloekek left
[15:09] <melezhik2> btw what p.Test-Mock does?

[15:10] <melezhik2> > As well as a file PERL6LIB that lists all the dependencies.

[15:10] <melezhik2> yeah makes a sene now

[15:10] <melezhik2> sense 

[15:12] *** k-man__ left
[15:13] *** k-man joined
[15:17] *** aindilis joined
[15:18] *** k-man left
[15:19] <melezhik2> chloekek: by testing Raku nix modules installation, do you mean just simple `raku -M$module` or you're thinking about `zef test $module`

[15:19] <tellable6> melezhik2, I'll pass your message to chloekek

[15:19] <melezhik2> the last is probably harder bearing in mind the nature of nix based installs

[15:20] *** guifa2 left
[15:22] *** k-man joined
[15:26] *** stoned75 left
[15:30] *** melezhik2 left
[15:32] *** MasterDuke joined
[15:36] <samcv> synthmeat, I don't think it's allowed to .fc from 2 characters down to 1. Only to go from 1 to 2

[15:37] *** stoned75 joined
[15:38] <El_Che> Hi, for a cli app, for command mode, do you also see it as: ./prog action sub-action --param-for-sub  --param-for-sub=foo?

[15:39] <El_Che> that's what I mostly see, e.g. docker

[15:39] *** softmoth joined
[15:42] *** guifa2 joined
[15:48] *** chloekek joined
[15:48] <chloekek> melezhik: Yeah there is currently no infrastructure in raku-nix for running tests.

[15:48] <tellable6> chloekek, I'll pass your message to melezhik2

[15:48] <chloekek> melezhik: Building and importing the modules seems like a good first step.

[15:48] <tellable6> chloekek, I'll pass your message to melezhik2

[15:51] *** melezhik joined
[15:52] <melezhik> chloekek: "Building and importing the modules seems like a good first step" - good

[15:52] <tellable6> 2020-04-13T15:48:19Z #raku <chloekek> melezhik: Yeah there is currently no infrastructure in raku-nix for running tests.

[15:52] <tellable6> 2020-04-13T15:48:33Z #raku <chloekek> melezhik: Building and importing the modules seems like a good first step.

[15:53] <melezhik> I guess I am choosing between 2 options how can I assist here

[15:53] <melezhik> 1) bringing nix modules build/import logic to RakuDist - think about a new "OS" supported

[15:54] <melezhik> 2) writing some Sparrow plugins/DSL so one can reuse those ones in their test scripts 

[15:55] <melezhik> which one is preferable , chloekek: ?

[16:03] *** chloekek left
[16:06] *** abraxxa left
[16:08] *** abraxxa joined
[16:22] *** Doc_Holliwood joined
[16:27] *** hungrydonkey left
[16:39] *** Altai-man_ joined
[16:40] <cpan-raku> New module released to CPAN! Gcrypt (0.1) by 03CTILMES

[16:42] *** sena_kun left
[16:47] *** aindilis left
[16:52] *** softmoth left
[16:52] *** softmoth joined
[16:53] *** knowles joined
[16:54] *** shlomif joined
[16:55] *** softmoth left
[16:57] *** rindolf left
[16:57] *** shlomif is now known as rindolf

[17:03] *** softmoth joined
[17:03] *** knowles left
[17:09] *** caterfxo left
[17:24] <Geth_> ¦ doc/str-substr-eq-i_m: a77eccfea4 | (Stoned Elipot)++ | 2 files

[17:24] <Geth_> ¦ doc/str-substr-eq-i_m: Document Str.substr-eq ignorecase/ignoremark

[17:24] <Geth_> ¦ doc/str-substr-eq-i_m: 

[17:24] <Geth_> ¦ doc/str-substr-eq-i_m: Refs #3229

[17:24] <Geth_> ¦ doc/str-substr-eq-i_m: review: https://github.com/Raku/doc/commit/a77eccfea4

[17:24] *** caterfxo joined
[17:25] <Geth_> ¦ doc: stoned++ created pull request #3334: Document Str.substr-eq ignorecase/ignoremark

[17:25] <Geth_> ¦ doc: review: https://github.com/Raku/doc/pull/3334

[17:30] *** caterfxo left
[17:31] *** caterfxo joined
[17:41] *** rbt left
[17:42] *** rbt joined
[17:43] *** pmurias joined
[17:43] *** guifa2 left
[17:46] *** melezhik left
[17:51] *** Cabanossi left
[17:51] <Geth_> ¦ doc: a77eccfea4 | (Stoned Elipot)++ | 2 files

[17:51] <Geth_> ¦ doc: Document Str.substr-eq ignorecase/ignoremark

[17:51] <Geth_> ¦ doc: 

[17:51] <Geth_> ¦ doc: Refs #3229

[17:51] <Geth_> ¦ doc: review: https://github.com/Raku/doc/commit/a77eccfea4

[17:51] <Geth_> ¦ doc: 8deaff588c | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | 2 files

[17:51] <Geth_> ¦ doc: Merge pull request #3334 from Raku/str-substr-eq-i_m

[17:51] <linkable6> DOC#3229 [open]: https://github.com/Raku/doc/issues/3229 [docs][new] Changes and additions for 2020.02

[17:52] <Geth_> ¦ doc: 

[17:52] <Geth_> ¦ doc: Document Str.substr-eq ignorecase/ignoremark

[17:52] <Geth_> ¦ doc: review: https://github.com/Raku/doc/commit/8deaff588c

[17:58] <cpan-raku> New module released to CPAN! Gcrypt (0.2) by 03CTILMES

[18:01] *** aindilis joined
[18:04] *** Cabanossi joined
[18:10] *** rbt left
[18:11] *** rbt joined
[18:12] *** sauvin left
[18:22] *** sjm_uk left
[18:28] *** pmurias left
[18:39] *** ensamvarg_ left
[18:40] *** sena_kun joined
[18:42] *** Altai-man_ left
[18:43] *** mowcat joined
[18:45] <Doc_Holliwood> m: role R { method foo() { say "!" } }; use MONKEY-TYPING; augment List does R;

[18:45] <camelia> rakudo-moar f987cdb0b: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Malformed augment (found type followed by trait; did you forget a variable in between?)␤at <tmp>:1␤------> 3!" } }; use MONKEY-TYPING; augment List 7⏏5does R;␤»

[18:46] <Doc_Holliwood> m: role R { method foo() { say "!" } }; use MONKEY-TYPING; augment class List does R;

[18:46] <camelia> rakudo-moar f987cdb0b: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Too late for unit-scoped class definition;␤Please use the block form.␤at <tmp>:1␤------> 3ONKEY-TYPING; augment class List does R;7⏏5<EOL>␤»

[18:46] <Doc_Holliwood> m: role R { method foo() { say "!" } }; use MONKEY-TYPING; augment class List does R {};

[18:47] <camelia> rakudo-moar f987cdb0b: ( no output )

[18:47] <Doc_Holliwood> m: role R { method foo() { say "!" } }; use MONKEY-TYPING; augment class List does R {}; (1,2).foo

[18:47] <camelia> rakudo-moar f987cdb0b: OUTPUT: «!␤»

[18:47] <Doc_Holliwood> noice

[18:54] *** caterfxo left
[18:54] *** stoned75 left
[19:01] *** chloekek joined
[19:18] *** abraxxa left
[19:25] *** stoned75 joined
[19:25] <lizmat> and another Rakudo Weekly News hits the Net: https://rakudoweekly.blog/2020/04/13/2020-15-an-easter-surprise/

[19:27] *** pmurias joined
[19:30] *** rindolf left
[19:31] <sena_kun> https://downforeveryoneorjustme.com/perlfoundation.org says https://www.perlfoundation.org/grant-ideas.html is down

[19:35] *** softmoth left
[19:35] <lizmat> works for me now

[19:37] <jnthn> very punny, lizmat++ :)

[19:39] *** caterfxo joined
[19:39] <[Coke]> grant-ideas.html is the wrong link.

[19:40] <[Coke]> https://grants.perlfoundation.org/ is better.

[19:40] <[Coke]> We haven't put in a redirect yet. Will see if I can make weebly do that later.

[19:40] <sena_kun> oh, this one works, [Coke]++

[19:40] *** sjm_uk joined
[19:40] <sena_kun> lizmat, I think weekly should use the new one as well.

[19:41] <lizmat> link updated

[19:42] <sena_kun> lizmat++

[19:45] <bartolin_> lizmat++ # weekly

[19:53] *** Grauwolf left
[19:54] *** sjm_uk left
[20:00] *** guifa2 joined
[20:03] <MasterDuke> lizmat++

[20:07] <guifa2> lizmat++

[20:09] <lizmat> argh, I just realized I forgot something in this weeks Weekly  :-(   sorry guifa

[20:09] <guifa2> lizmat: no problem!  I'm still getting caught up with $day-job and $get-phd-paper-in-hand-work so I haven't advanced as quickly on that front as I'd've liked

[20:10] <guifa2> So by the time people read the proposal next week, there may even be a semi-experimental module ready

[20:10] <lizmat> weekly: grammar proposal by guifa https://gist.github.com/alabamenhu/2fec7a8f51a24091dc1b104a2ae2f04d

[20:10] <notable6> lizmat, Noted! (weekly)

[20:17] * guifa2 really can't wait to have this semester off of his shoulder so he can dive fully into Intl::, so much work there to get done, especially given everything I've learned over the past few months 

[20:17] <chloekek> Is it possible to force line buffering on stdout?

[20:17] <tellable6> 2020-04-13T15:19:09Z #raku <melezhik2> chloekek: by testing Raku nix modules installation, do you mean just simple `raku -M$module` or you're thinking about `zef test $module`

[20:21] *** stoned75 left
[20:21] <chloekek> I can set $*OUT.out-buffer = 0 but that completely disables buffering.

[20:21] <MasterDuke> chloekek: https://docs.raku.org/type/IO::Handle#method_open has some info

[20:22] <MasterDuke> maybe something with the TTY settings would do what you want

[20:22] <chloekek> My stdout is not a TTY, it’s a pipe.

[20:22] <chloekek> I think line buffering is just not a thing at the moment.

[20:39] *** Altai-man_ joined
[20:40] <chloekek> p6: say %*ENV; say %(|%*ENV, A => 'B');

[20:40] <camelia> rakudo-moar f987cdb0b: OUTPUT: «{DBUS_SESSION_BUS_ADDRESS => unix:path=/run/user/1017/bus, HOME => /home/camelia, LC_CTYPE => en_US.UTF-8, LOGNAME => evalbot, MAIL => /var/mail/evalbot, PATH => /usr/bin:/bin:/usr/sbin:/sbin, SHELL => /bin/bash, SUDO_COMMAND => /home/camelia/rakudo-m…»

[20:40] *** stoned75 joined
[20:40] <chloekek> p6: say %(|%*ENV, A => 'B');

[20:40] <camelia> rakudo-moar f987cdb0b: OUTPUT: «{A => B, DBUS_SESSION_BUS_ADDRESS => unix:path=/run/user/1017/bus, HOME => /home/camelia, LC_CTYPE => en_US.UTF-8, LOGNAME => evalbot, MAIL => /var/mail/evalbot, PATH => /usr/bin:/bin:/usr/sbin:/sbin, SHELL => /bin/bash, SUDO_COMMAND => /home/camelia/…»

[20:42] *** sena_kun left
[20:43] <chloekek> My goodness, it didn’t work because I wrote my %*ENV = %(|%*ENV, ...);.

[20:48] *** MasterDuke left
[20:50] * guifa2 's eyes are hurting from that %(|%* .  Was that perl? ;-)

[20:50] <lizmat> chloekek: I don't think line buffering is a thing atm

[20:52] <chloekek> lizmat: I thought so

[20:53] <synthmeat> wait, wait, wait. PAST -> QAST -> RakuAST? seriously? no RAST?

[20:53] <tobs> m: my %h = a => 'b'; %h »//«= %(A => 'B', a => 'z'); say %h

[20:53] <camelia> rakudo-moar f987cdb0b: OUTPUT: «{A => B, a => b}␤»

[20:53] <lizmat> no, no RASTaman Vibration

[20:54] *** Kaeipi left
[20:54] *** Kaeipi joined
[20:58] <chloekek> guifa2: (|~«. is my favorite sequence of symbols in my code so far. ({ !$++ || .[1] ne comes close.

[20:58] *** caterfxo left
[20:59] <lizmat> in my opinion, $++ is nice for oneliners, but shouldn't be used in any code that lives elsewhere

[21:01] <chloekek> I like how much you can get done without any letters. :)

[21:01] *** MasterDuke joined
[21:02] <Geth_> ¦ doc/str-indices-i_m: 1fbe42f257 | (Stoned Elipot)++ | 2 files

[21:02] <Geth_> ¦ doc/str-indices-i_m: Document Str.indices ignorecase/ignoremark

[21:02] <Geth_> ¦ doc/str-indices-i_m: 

[21:02] <Geth_> ¦ doc/str-indices-i_m: Refs #3229

[21:02] <Geth_> ¦ doc/str-indices-i_m: review: https://github.com/Raku/doc/commit/1fbe42f257

[21:02] <lizmat> chloekek: you think you like that now  :-)

[21:02] <tobs> m: my %h = a => 'b'; %h »R//«= %(A => 'B', a => 'z'); say %h  # doh, this one will overwrite instead of preserve pairs on the LHS

[21:02] <camelia> rakudo-moar f987cdb0b: OUTPUT: «{A => B, a => z}␤»

[21:02] <Geth_> ¦ doc: stoned++ created pull request #3335: Document Str.indices ignorecase/ignoremark

[21:02] <Geth_> ¦ doc: review: https://github.com/Raku/doc/pull/3335

[21:02] <tobs> »R//«= is not half bad either IMHO :-)

[21:02] <chloekek> lizmat: Be sufficiently proud of your obscure one-lines that you don’t forget them.

[21:03] <[Coke]> autarch++ just fixed the redirect in the weebly source, so both links go to the same place now.

[21:03] <[Coke]> (for grant ideas)

[21:03] <lizmat> chloekek: but will other people recognize them ?

[21:04] <chloekek> Every unknown is an opportunity to learn.

[21:04] <AlexDaniel> or an opportunity to hate

[21:04] <AlexDaniel> x)

[21:10] *** Hexeratops joined
[21:20] *** Black_Ribbon joined
[21:25] *** chloekek left
[21:29] *** Altai-man_ left
[21:38] *** simcop2387 left
[21:39] *** gdonald left
[21:39] *** simcop2387 joined
[21:40] *** Grauwolf joined
[21:40] *** Grauwolf left
[21:40] *** Grauwolf joined
[21:41] *** gdonald joined
[21:44] *** rbt left
[21:45] *** rbt joined
[21:46] *** m0ltar joined
[21:49] *** aborazmeh joined
[21:49] *** aborazmeh left
[21:49] *** aborazmeh joined
[22:00] *** lucasb left
[22:03] *** natrys left
[22:32] *** _jrjsmrtn joined
[22:33] *** __jrjsmrtn__ left
[22:45] *** cognominal joined
[22:46] *** cognomin_ left
[23:11] *** rbt left
[23:11] *** rbt joined
[23:25] *** ensamvarg_ joined
[23:27] *** mowcat left
[23:36] <cpan-raku> New module released to CPAN! Gcrypt (0.4) by 03CTILMES

[23:55] *** softmoth joined
[23:55] *** rbt left
[23:58] *** guifa2 left
