[00:01] mjgardner: it's only 3 lines long, there's not really anything there to critique! [00:03] I suppose, I just didn’t know if there was any more magic Raku operators or whatever I needed to be aware of. I’m just trying to avoid making a fool of myself before I write a post saying, “Look, this is the better version.” [00:03] *** reportable6 joined [00:05] a couple of things that you might not know about--I don't think they would improve the script, but as a point of style you might happen to prefer them-- [00:05] @feeds[0] can be written as @feeds.first or @feeds.head [00:06] in 'put $_.title, "\t", $_.link', you can leave off the $_ [00:06] or smoosh the whole thing into one string literal: put "$_.title()\t$_.link()" for... [00:07] Oh right, you can interpolate method calls. [00:11] I think I’ll do without the smooshing, it’s got more punctuation noise. [00:12] yeah; I would probably prefer that if there were a lot of literal text alongside the interpolated bits, but not just for one character [00:49] *** notable6 joined [00:49] *** benchable6 joined [00:50] *** squashable6 joined [01:12] *** lichtkind left [01:32] *** Kaiepi left [01:33] *** Kaiepi joined [01:46] *** monkey_ joined [01:48] *** Kaiepi left [01:48] *** Kaipi joined [01:48] *** tellable6 joined [01:50] *** shareable6 joined [01:51] *** Kaipi left [01:51] *** Merfont joined [01:56] *** Merfont left [01:58] *** Kaiepi joined [02:12] *** Kaipi joined [02:12] *** Kaiepi left [02:28] *** holyghost left [02:48] *** Kaipi left [02:49] *** evalable6 joined [02:49] *** sourceable6 joined [03:10] *** neshpion left [03:49] *** releasable6 joined [04:24] *** holyghost joined [04:45] *** Gruber joined [04:45] *** gugod left [04:45] *** raydiak left [04:45] *** Grrrr left [04:45] *** Ulti left [04:45] *** Ulti_ joined [04:45] *** raydiak_ joined [04:46] *** gugod joined [04:48] *** camelia left [04:48] *** vodkra left [04:48] *** JRaspass left [04:48] *** Tirifto_ left [04:48] *** KotH left [04:48] *** El_Che left [04:48] *** SmokeMachine_ left [04:48] *** Scotteh left [04:48] *** bartolin left [04:48] *** markmarkmark left [04:48] *** KotH_ joined [04:48] *** El_Che_ joined [04:48] *** bartolin_ joined [04:48] *** vodkra_ joined [04:48] *** JRaspass_ joined [04:49] *** SmokeMachine__ joined [04:49] *** Tirifto joined [04:49] *** JRaspass_ is now known as JRaspass [04:49] *** Scotteh joined [04:50] *** markmarkmark joined [04:54] *** monkey_ left [05:12] *** keutoi joined [06:02] *** reportable6 left [06:04] *** reportable6 joined [06:36] *** abraxxa joined [06:42] *** abraxxa left [06:43] *** abraxxa joined [06:55] *** Sgeo left [07:22] *** Manifest0 joined [07:36] *** dakkar joined [07:48] *** eseyman left [07:58] *** eseyman joined [08:33] ¦ doc: e13f656fba | (JJ Merelo)++ | doc/Language/5to6-perlfunc.pod6 [08:33] ¦ doc: Clarify differences between ucfirst vs tc and tclc [08:33] Link: https://docs.raku.org/language/5to6-perlfunc [08:33] ¦ doc: [08:33] ¦ doc: This closes #3933. [08:33] ¦ doc: review: https://github.com/Raku/doc/commit/e13f656fba [08:33] ¦ doc: 2e3006c502 | (JJ Merelo)++ | doc/Type/Cool.pod6 [08:33] ¦ doc: Revision of the definition of log2 and log10 [08:33] ¦ doc: [08:33] ¦ doc: Triggered by #3929, I didn't really find the error; however, there were some minor issues with the definition and the grammar. Anyway, this closes #3929. [08:33] ¦ doc: review: https://github.com/Raku/doc/commit/2e3006c502 [08:34] *** linkable6 left [08:34] *** linkable6 joined [08:36] *** frost joined [08:50] *** dakkar left [08:50] *** dakkar joined [09:01] ¦ doc: 916875f833 | (JJ Merelo)++ | doc/Language/haskell-to-p6.pod6 [09:01] ¦ doc: Adds description of takeWhile [09:01] ¦ doc: [09:01] ¦ doc: With a specific example suggested by @mykhal in issue #3932. Also, closes #3932 [09:01] ¦ doc: review: https://github.com/Raku/doc/commit/916875f833 [09:01] Link: https://docs.raku.org/language/haskell-to-p6 [09:01] *** linkable6 left [09:03] *** linkable6 joined [09:56] *** lichtkind joined [10:03] *** raydiak_ is now known as raydiak [10:05] *** Xliff joined [10:06] *** keutoi_ joined [10:07] *** keutoi left [10:29] *** xinming left [10:37] *** sena_kun joined [11:14] *** jjido joined [11:19] *** keutoi_ is now known as keutoi [11:44] *** jjido left [12:02] *** reportable6 left [12:09] *** frost left [12:26] *** frost joined [12:29] and another Rakudo Weekly News hits the Net: https://rakudoweekly.blog/2021/08/23/2021-34-stabler/ [12:30] *** guffiardon joined [12:44] *** keutoi left [12:55] *** keutoi joined [12:57] yay! lizmat++ # RWN [12:57] *** Pipirok joined [12:57] *** Pipirok left [13:04] lizmat++ [13:05] *** reportable6 joined [13:10] *** frost left [13:19] it's a great consolation for the fact it's Monday [13:35] *** keutoi_ joined [13:36] *** keutoi left [13:36] *** keutoi_ is now known as keutoi [14:06] *** Xliff left [14:14] *** guffiardon left [14:18] *** Sgeo joined [14:28] *** MoC joined [14:56] *** xinming joined [15:02] *** camelia joined [15:36] m: say "this.uc() works"; [15:36] rakudo-moar 5c74b4053: OUTPUT: «this.uc() works␤» [15:37] er, [15:39] 6c: say "word.uc() is"; [15:40] codesections, ¦6c (57 commits): «word.uc() is␤» [15:40] I don't think that's how it works :D [15:41] Odd. Memory must be playing tricks on me. nevermind. [15:43] you can run methods in interpolation, but only on external objects, which chars within the string are not [15:44] 6c: say "{ 'word'.uc() } is" ## maybe this? [15:44] ... [15:44] Altreus, ¦6c (57 commits): «WORD is␤» [15:44] ! [15:45] oh, I remember now. I was thinking of this: [15:45] m: my $word = 'word'; say "$word.uc() is" ## also this? [15:45] rakudo-moar 5c74b4053: OUTPUT: «WORD is␤» [15:45] that [15:45] yeah, the thing has to be being interpolated already :) [15:46] indeed, that's what was temporarily slipping my mind [15:46] I quite like the new rules for interpolation. They make it very simple to separate the parts [15:46] m: my $word = 'word'; say "{ $word }.uc() is" ## just text [15:46] rakudo-moar 5c74b4053: OUTPUT: «word.uc() is␤» [15:46] none of this ${ symbol name }, or maybe it was @{ symbol } or oh I've gone crosseyed [15:47] indeed. And they make is easy to decide when to create new scopes [15:47] m: say "{[ ]}" [15:47] rakudo-moar 5c74b4053: OUTPUT: «what does this do␤» [15:47] ehehe [15:48] m: for 0..5 { say "$($++) | {$++}" } [15:48] rakudo-moar 5c74b4053: OUTPUT: «0 | 0␤1 | 0␤2 | 0␤3 | 0␤4 | 0␤5 | 0␤» [15:49] that'll presumably be the values of $0, $1 etc? [15:49] or just the value of a variable literally called $++? [15:49] m: my $'$++' = ':(' [15:49] rakudo-moar 5c74b4053: OUTPUT: «5===SORRY!5=== Error while compiling ␤Name must begin with alphabetic character␤at :1␤------> 3my $7⏏5'$++' = ':('␤ expecting any of:␤ constraint␤ infix␤ infix stopper␤ postfix␤ …» [15:49] phew [15:50] it's the $ variable in scalar context [15:51] why is the second half always 0 though [15:51] because {...} creates a new scope, and resets $ [15:51] Quote constructs dont share scope. [15:52] m: for 0..5 { say "$($++) | {++$}" } [15:52] rakudo-moar 5c74b4053: OUTPUT: «0 | 1␤1 | 1␤2 | 1␤3 | 1␤4 | 1␤5 | 1␤» [15:52] oh, it's not the $ from the for [15:52] m: for 0..5 { say ($($++) | {++$}) } [15:52] rakudo-moar 5c74b4053: OUTPUT: «any(0, -> ;; $_? is raw = OUTER::<$_> { #`(Block|74173264) ... })␤any(1, -> ;; $_? is raw = OUTER::<$_> { #`(Block|64390616) ... })␤any(2, -> ;; $_? is raw = OUTER::<$_> { #`(Block|64390688) ... })␤any(3, -> ;; $_? is raw = OUTER::<$_> { #`(Bloc…» [15:52] it's a "block" within the string with its own $ [15:52] m: for 0..5 { say ($($++) | {++$}() } [15:52] rakudo-moar 5c74b4053: OUTPUT: «5===SORRY!5=== Error while compiling ␤Unable to parse expression in parenthesized expression; couldn't find final ')' (corresponding starter was at line 1)␤at :1␤------> 3for 0..5 { say ($($++) | {++$}() 7⏏5}␤ expecting …» [15:52] m: for 0..5 { say ($($++) | {++$}.() } [15:52] rakudo-moar 5c74b4053: OUTPUT: «5===SORRY!5=== Error while compiling ␤Unable to parse expression in parenthesized expression; couldn't find final ')' (corresponding starter was at line 1)␤at :1␤------> 3for 0..5 { say ($($++) | {++$}.() 7⏏5}␤ expecting…» [15:53] m: for 0..5 { say ($($++) | {++$}.()) } [15:53] rakudo-moar 5c74b4053: OUTPUT: «any(0, 1)␤any(1, 1)␤any(2, 1)␤any(3, 1)␤any(4, 1)␤any(5, 1)␤» [15:53] Altreus yep, exactly [15:53] okay, so how come the first one maintains state and the second one doesn't :x [15:53] apologies if this is raku 101 [15:54] I feel like it's more likely to be 301 though [15:54] i agree [15:54] second one is its own block {} [15:54] But then, I'm a Raku beginner since 2008. [15:54] :D [15:54] because $(…) *doesn't create a new scope — which makes $(...) handy for things that want to access the outer scope [15:54] it's a context, not a block [15:55] (like @ or %) [15:55] ooohh $() *is* the $ from the for block, but {} is a new block each iteration [15:55] and that's where the state of $ is held [15:55] m: for 0..5 { say ($($++) , {++$}.()) } [15:55] rakudo-moar 5c74b4053: OUTPUT: «(0 1)␤(1 1)␤(2 1)␤(3 1)␤(4 1)␤(5 1)␤» [15:55] so $ is basically just "A container for this block to make use of" [15:56] yeah, exactly [15:56] https://docs.raku.org/language/variables#The_$_variable [15:56] nodnod [15:56] m: for 0..5 { say ($($++); say {++$} } [15:56] rakudo-moar 5c74b4053: OUTPUT: «5===SORRY!5=== Error while compiling ␤Unable to parse expression in parenthesized expression; couldn't find final ')' (corresponding starter was at line 1)␤at :1␤------> 3for 0..5 { say ($($++); say {++$} 7⏏5}␤ expecting…» [15:56] m: for 0..5 { say $($++); say {++$} } [15:56] rakudo-moar 5c74b4053: OUTPUT: «0␤-> ;; $_? is raw = OUTER::<$_> { #`(Block|80142560) ... }␤1␤-> ;; $_? is raw = OUTER::<$_> { #`(Block|80142848) ... }␤2␤-> ;; $_? is raw = OUTER::<$_> { #`(Block|80142920) ... }␤3␤-> ;; $_? is raw = OUTER::<$_> { #`(Block|80142992) ...…» [15:57] It's a little more complex in this case because the block is stored as a code object. And {} is the thing that created code objects, unless they are in sink context. [15:57] oh no, I misunderstood slightly - "Each reference to $ within a lexical scope is in effect a separate variable" [15:58] So you have as many of them as times you use them because Raku is somehow magic and can identify a variable by where it's used as well as what it's called [15:58] Anonymous variables are special cased. [15:59] special octarine case [15:59] octiron? [15:59] yes, octiron [16:02] *** evalable6 left [16:07] m: for 0..5 { say $($++); put {++$} } [16:07] rakudo-moar 5c74b4053: OUTPUT: «0␤Block object coerced to string (please use .gist or .raku to do that)␤␤1␤␤2␤␤3␤␤4␤␤5␤␤ in block at line 1␤Block object coerced to string (please use .gist or .raku to do that)␤ in block at line 1␤Block…» [16:08] Altreus: please note that say is kinda special, thanks to it's `is raw` argument. [16:14] ah, put is say without gist behaviour? [16:14] yes [16:14] oh, say is documented as such [16:15] have to remember that in future [16:16] And gist on lists wont return more then 100 elements. If I where to design assignments for Raku hires (one can dream!), I would make sure to have the fine candidate to output a list with 101 elements. :-> [16:18] ¦ doc/master: 5 commits pushed by (JJ Merelo)++ [16:18] ¦ doc/master: 60a4502c02 | We are not using Travis any more [16:18] ¦ doc/master: bb92bb2f47 | Updates CircleCI status code [16:18] ¦ doc/master: 230e083081 | Shippable does not even work [16:18] ¦ doc/master: add3333cfa | Adds GitHub actions status badge [16:18] ¦ doc/master: 72d98dc3d0 | Minor typographic fixes [16:18] ¦ doc/master: review: https://github.com/Raku/doc/compare/916875f833d2...72d98dc3d09b [16:21] I followed a twitter link from the daily and it segfaulted my browser tab [16:22] Altreus interesting... which one ? [16:22] this one, but I think it's generically Twitter sucking rather than the link in particular https://twitter.com/markjgardner/status/1427405084619587584 [16:22] yeah, looks like [16:23] It might be due to the number of criminally bad takes on climate change that Twitter thinks I want to see [16:23] Apparently a tweet involving the word "uninformed" means I want to see lots of other uninformed people with a platform [16:23] If you must change the climate, please change it back! [16:24] I had to get myself a cosy blanket, jut because we had the windows open. [16:25] lizmat: you have far more patience on Twitter than I do [16:25] perhaps.. :-) [16:31] *** dakkar left [16:33] ¦ doc: f5c9535d2e | (JJ Merelo)++ | doc/Type/Cool.pod6 [16:33] ¦ doc: Actually fixing #3929 [16:33] ¦ doc: [16:33] ¦ doc: Thanks @mabiggar for clarification. [16:33] ¦ doc: review: https://github.com/Raku/doc/commit/f5c9535d2e [16:33] Link: https://docs.raku.org/type/Cool [16:34] *** linkable6 left [16:36] *** linkable6 joined [16:45] *** jess joined [17:04] *** evalable6 joined [17:05] *** guillardo joined [17:14] *** b2gills left [17:15] *** b2gills joined [17:22] *** abraxxa-home joined [17:30] *** Kaiepi joined [18:03] *** reportable6 left [18:06] *** sena_kun left [18:14] *** keutoi left [18:25] *** abraxxa-home left [18:35] *** neshpion joined [18:35] *** neshpion left [18:36] *** neshpion joined [18:45] *** guillardo left [18:55] Rakudo 2021.08 is now also available in openSUSE Tumbleweed. Just: zypper in rakudo [18:58] Rakudo 2021.08 is now also available in openSUSE Tumbleweed. Just: zypper in rakudo [19:03] whee! [19:07] *** japhb left [19:18] PSA: I have just transferred the IRC::Client module from raku-community-modules to my account [19:18] I intend to work on it the coming days and release a new version updated to the latest and greatest Raku features [19:19] :o [19:19] lizmat++ [19:23] *** MahBot joined [19:24] MahBot: hello [19:24] lizmat, HELLO [19:24] *** MahBot left [19:29] lizmat++ nine++ [19:34] *** japhb joined [19:52] *** MoC left [20:05] *** reportable6 joined [20:48] *** gordonfish- joined [20:50] *** gordonfish left [21:12] *** ecocode left [21:13] *** ecocode joined [21:20] *** japhb left [21:37] *** jjido joined [21:52] *** tejr left [21:56] *** japhb joined [21:59] *** tejr joined [22:02] *** gordonfish- is now known as gordonfish [23:02] *** linkable6 left [23:02] *** coverable6 left [23:02] *** unicodable6 left [23:02] *** nativecallable6 left [23:02] *** reportable6 left [23:02] *** evalable6 left [23:02] *** releasable6 left [23:02] *** benchable6 left [23:02] *** squashable6 left [23:02] *** quotable6 left [23:02] *** greppable6 left [23:02] *** notable6 left [23:02] *** shareable6 left [23:02] *** bloatable6 left [23:02] *** sourceable6 left [23:02] *** statisfiable6 left [23:02] *** tellable6 left [23:02] *** bisectable6 left [23:02] *** committable6 left [23:03] *** committable6 left [23:03] *** reportable6 joined [23:03] *** nativecallable6 joined [23:03] *** coverable6 joined [23:03] *** quotable6 joined [23:03] *** shareable6 joined [23:03] *** greppable6 joined [23:03] *** notable6 joined [23:03] *** linkable6 joined [23:04] *** committable6 joined [23:04] *** unicodable6 joined [23:04] *** benchable6 joined