| 29 Jun 2026 | |||
| lizmat | m: use nqp; dd nqp::getattr((1,2,3).Seq.List,List,q/$!reified/) | 06:50 | |
| camelia | ().IterationBuffer | ||
| lizmat | m: use nqp; dd nqp::getattr(eager((1,2,3).Seq),List,q/$!reified/) | 06:51 | |
| camelia | ===SORRY!=== Error while compiling <tmp> Undeclared routine: eager used at line 1 |
||
| lizmat | m: use nqp; dd nqp::getattr((eager(1,2,3).Seq),List,q/$!reified/) | ||
| camelia | ===SORRY!=== Error while compiling <tmp> Undeclared routine: eager used at line 1 |
||
| lizmat | m: use nqp; dd nqp::getattr((eager (1,2,3).Seq),List,q/$!reified/) | ||
| camelia | (1, 2, 3).IterationBuffer | ||
| librasteve | lizmat: thanks for clarifying - as is often the case, fielding questions here means I learn new things - mainly by forcing me to review the docs and re-up my knowledge | 08:17 | |
| @timemelon - thanks for your patience on this - on this one, I (re)discovered that close reading of this docs page docs.raku.org/language/list clarifies matters | 08:19 | ||
| this "told" me two things (i) you can store lazy sequences in Lists and Arrays and (ii) Although the Seq class does provide some positional subscripting, it does not provide the full interface of Positional, so an @-sigiled variable may not be bound to a Seq, and trying to do so will yield an error. This is because the Seq does not keep values around after you have used them. This is useful behavior if you have a | 08:21 | ||
| very long sequence, as you may want to throw values away after using them, so that your program does not fill up memory. | |||
| lizmat | Seq positional feature is done by the PositionalBindFailover logic | 08:22 | |
| librasteve | yeah, this docs sections also say It is possible to hide a Seq inside a List, which will still be lazy, but will remember old values. This is done by calling the .list method. Since this List fully supports Positional, you may bind it directly to an @-sigiled variable. | 08:24 | |
| sooo - I think that we also need to restate this in the other docs page on routine list to cover that use-case | 08:25 | ||
| PR coming | |||
| librasteve_ | oh - wait | 08:46 | |
| I just tested the example at the end of this section docs.raku.org/language/list#Sequences | 08:47 | ||
| oh - issue was that the example does work in the Raku REPL (I guess since that calls say on each line of results) - all is good if in an actual script | 08:49 | ||
| s/does/does not/ | |||
| m: my @s := (loop { 42.say }).list; say @s[2], ‘:’, @s[1], ‘:’ @s[4]; | 08:50 | ||
| camelia | ===SORRY!=== Error while compiling <tmp> Two terms in a row at <tmp>:1 ------> .say }).list; say @s[2], ‘:’, @s[1], ‘:’<HERE> @s[4]; expecting any of: infix infix stopper postfix statement en… |
||
| librasteve_ | m: my @s := (loop { 42.say }).list; say @s[2]; say @s[1]; say @s[4]; | 08:51 | |
| camelia | 42 42 42 True True 42 42 True |
||
| librasteve_ | well - works fine in an actual Raku script - guess Camelia struggles too | 08:52 | |
| oh, I am holding it wrong (the ‘say’ is on the loop) durr | 08:54 | ||
| m: my @s := (loop { 42.say }).list; @s[2]; @s[1]; @s[4]; | |||
| camelia | 42 42 42 42 42 |
||
| librasteve_ | rakudoweekly.blog/2026/06/29/2026-...lease-194/ | 13:51 | |
| lizmat | librasteve__++ | 14:03 | |
| 2 Jul 2026 | |||
| comborico | Is the conference going to be put online? | 22:56 | |
| 3 Jul 2026 | |||
| librasteve | according to the organizers Watch for our videos on our YouTube channel at youtube.com/@YAPCNA/videos/ once the conference is over. | 03:03 | |
| they’re not there yet :-( | |||
| timemelon | is there a difference between »×« and «×»? | 19:28 | |
| librasteve | for listy things, I think they are equivalent, for associative things, you have %foo «+» %bar; intersection of keys and %foo »+« %bar; union of keys (docs.raku.org/language/operators#H...operators) | 22:01 | |
| timemelon | ty! | 22:13 | |
| 6 Jul 2026 | |||
| librasteve_ | rakudoweekly.blog/2026/07/06/2026-27-trf-lives/ | 08:41 | |
| tbrowder | the new Raku Foundation needs to accept donations by check unless someone in US knows of an easy way to send money internationally without going to a bank or post office. | 15:02 | |
| lizmat | tbrowder: we're working on alternate ways to donate.... BTW, there's no point in working with checks, as the charges for processing a US check by a EU bank are typically in the range of 50€ :-( | 15:46 | |
| tbrowder | wowser! i forgot you told me that before :( | 15:54 | |
| well worth a trip to the bank | 15:55 | ||
| 7 Jul 2026 | |||
| pippo | m: my @a=((1,2,3),(2,3,4),(3,4,5)); say @a[1..2;0]; | 16:37 | |
| camelia | (2 3) | ||
| pippo | m: my @a=((1,2,3),(2,3,4),(3,4,5)); say @a[1..*;0]; | ||
| camelia | (timeout) | ||
| pippo | ^^ anybody knows why? | 16:39 | |
| lizmat | m: use v6.e.PREVIEW; my @a=((1,2,3),(2,3,4),(3,4,5)); say @a[1..*;0]; | 16:46 | |
| camelia | (2 3) | ||
| pippo | Ha! Thank you lizmat! | 16:48 | |
| lizmat | it's a known issue in 6.d | 16:49 | |
| since some of the semantics were fixed, the fix is bounded by a language level | 16:50 | ||
| pippo | Ok. I'll use v6.e.PREVIEW for my little scrip as you suggested. Cheers! | ||
| lizmat | (as some code in the ecosystem possibly depended on the wrong semantics) | 16:51 | |