🦋 Welcome to the IRC channel of the core developers of the Raku Programming Language (raku.org #rakulang). This channel is logged for the purpose of history keeping about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Logs available at irclogs.raku.org/raku-dev/live.html | For MoarVM see #moarvm
Set by lizmat on 8 June 2022.
00:00 reportable6 left, reportable6 joined 01:03 epony left 01:10 MasterDuke left 01:37 MasterDuke joined 02:41 melezhik joined 02:42 melezhik left 02:49 melezhik joined 02:51 melezhik left
[Coke] .seen codesections 02:58
tellable6 [Coke], I saw codesections 2022-03-29T20:41:00Z in #raku: <codesections> I don't have a release date for epee yet, sorry ☹
05:12 linkable6 left, evalable6 left 05:13 linkable6 joined 05:15 evalable6 joined 05:36 kjp left 05:39 kjp joined 06:00 reportable6 left 06:03 reportable6 joined
patrickb the rakubrew on apple silicon story is annoying. From memory: Rakubrew itself is running on an x86 Perl thus under Rosetta. Given that environment its really difficult to do an arm build. I do seem to remember that I fixed rakubrew downloading x86 builds instead of arm ones. (rakudo.org *does* have builds for apple silicon) 06:41
github.com/Raku/App-Rakubrew/commi...0d934b308f 06:45
[Coke]: Which version of rakubrew are you running? I thought to have fixed it in v24. Can you check in a Rosetta environment what the output of `sysctl -n machdep.cpu.brand_string` and `uname -m` is? 06:49
07:03 epony joined 07:34 sena_kun joined, sena_kun left 09:19 squashable6 left 09:20 squashable6 joined
Geth rakudo/main: 61b8bee314 | (Elizabeth Mattijsen)++ | src/core.e/Any-iterable-methods.pm6
Make sure snitch caches Seqs

Just as a precaution, as snitch will be used on Seqs usually and it is easy to get a "Seq exhausted" error otherwise
10:41
lizmat found by writing examples for the documentation of snitch 10:42
gfldex lizmat: would it be possible to let .snitch return a new Seq to avoid caching of ginormous lists? 10:47
lizmat that would mean resetting the iterator, and there is no way to do that
by design
10:52 NemokoschKiwi joined
Nemokosch if you clone a sequence, do the elements get consumed? 10:55
lizmat it all depends on the underlying iterator: Seq is really just a wrapper around an interator to automatically allow caching with the PositionalBindFailover logic 10:56
how does the iterator like being cloned 10:57
you can't say anything about that generally
Nemokosch where is it even described? I swear there was a method that could create another Seq/Iterator/something, and the example was that you could reply a randomization two times with the same content 11:02
11:04 NemokoschKiwi left
lizmat docs.raku.org/type/Iterator.html#IterationEnd 11:04
Nemokosch I can't see the example 11:07
lizmat well, that'd be a doc-website issue then ? 11:08
viewable in dark and light theme for me 11:09
Geth rakudo/main: efb59f789e | (Elizabeth Mattijsen)++ | 2 files
Make prefix // working again

Somehow this was missed by an internal reorganization on language versions. Lack of tests is probably the reason :-(
Also make sure prefix // has the same precedence as prefix +
11:15
Nemokosch mind you, you linked IterationEnd, that's not really related 11:19
> there was a method that could create another Seq/Iterator/something, and the example was that you could reply a randomization two times with the same content 11:20
lizmat "Iterators only allow one iteration over the entire sequence."
Nemokosch *replay, sorry
lizmat that line is at the IterationEnd entry
and was pertinent to the question
Nemokosch but there really is something that can save an iterator somehow 11:21
lizmat and that be calling .cache on the Seq
Nemokosch I remember that much
lizmat m: my $s := (1..10).pick xx 10; dd $s; dd $s 11:22
camelia (2, 4, 6, 6, 5, 7, 2, 4, 8, 9).Seq
(2, 4, 6, 6, 5, 7, 2, 4, 8, 9).Seq
lizmat that's because the Seq got cached by dd because of positional access I believe 11:24
m: my $s := (1..10).pick xx 3; .say for $s; .say for $s
camelia 9
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

2
5
lizmat example of uncached use
Nemokosch could be that it was some blog post 11:25
12:00 reportable6 left 12:01 reportable6 joined
Geth rakudo/main: 28a32766ea | (Elizabeth Mattijsen)++ | 2 files
Add rotor capabilities to sub comb in 6.e

It appears this was forgotten in the original addition.
12:37
13:01 linkable6 left, evalable6 left, linkable6 joined 13:03 evalable6 joined
Geth rakudo/main: faff909125 | (Elizabeth Mattijsen)++ | src/core.c/Mu.pm6
Make Mu.WHY a bit smarter

If the given object has a "name" method, assume it is a Routine and link to that section on the documentation website. Also make sure we URL escape a bit.
   $ raku -e 'say &infix:<+>.WHY'
   No documentation available for infix:<+>. Perhaps it can be found at
   docs.raku.org/routine/infix:&l...p;gt;.html
13:05
rakudo/main: dde366eecf | (Elizabeth Mattijsen)++ | src/core.c/IO/Path.pm6
Give IO::Path.chown more "unlink" like semantics

By having it return a Failure rather than throwing if something went wrong
14:18
rakudo/main: ec8cdd5404 | (Elizabeth Mattijsen)++ | src/core.e/Rakudo/Iterator.pm6
Make snip produce the last List without reification

which will stop it from hanging on lazy Iterables:
   .say for (1..*).snip(* < 10)'
   # (1 2 3 4 5 6 7 8 9)
   # (...)
15:56
lizmat gfldex ^^ finally got around to it
16:05 guifa_ left
gfldex cool 16:24
16:42 gfldex left 16:51 gfldex joined 16:57 gfldex left 17:00 gfldex joined 17:26 guifa joined
lizmat bisectable6: "2023-03-04".Date 17:58
bisectable6 lizmat, Will bisect the whole range automagically because no endpoints were provided, hang tight
lizmat, Output on all releases: gist.github.com/0ff6a3ea18fcba2790...52f4c7510d
lizmat, Bisecting by exit code (old=2020.02.1 new=2020.05.1). Old exit code: 1
lizmat, bisect log: gist.github.com/ce5be6a1fba344a811...2dba2a9618 17:59
lizmat, (2020-02-29) github.com/rakudo/rakudo/commit/d9...d198747f09
lizmat, Bisecting by output (old=2017.05 new=2017.06) because on both starting points the exit code is 1
lizmat, bisect log: gist.github.com/0b03142e0a5a46e837...698025c288
lizmat, (2017-06-01) github.com/rakudo/rakudo/commit/7c...656b955cd7
lizmat, Bisecting by output (old=2016.09 new=2016.10) because on both starting points the exit code is 1
lizmat, bisect log: gist.github.com/32536cd3a48f1cb1a4...059572c971
lizmat, Output on all releases and bisected commits: gist.github.com/9946b55cb60da2198f...4494171d7e 18:00
18:00 reportable6 left 18:02 reportable6 joined
[Coke] patrickb: rakubrew v33 Build type: macos OS: darwin ; Apple M2 ; arm64 18:03
(running on x86 perl ... oooh) 18:04
ugexe my assumption was the executable at rakubrew.org/macos/rakubrew is x86 18:13
[Coke] It's not quite as convenient, but building your own and the registering with rakubrew seems to keep all the arm64-ness.
m: dd <01 11 111 2 20 02>.sort 18:18
camelia (IntStr.new(1, "01"), IntStr.new(2, "02"), IntStr.new(2, "2"), IntStr.new(11, "11"), IntStr.new(20, "20"), IntStr.new(111, "111")).Seq
18:26 epony left 18:27 epony joined
ugexe i modified the macos build script to download a arm64 perl, built the rakubrew executable, and using that it built arm64 raku/moarvm 19:04
macos build script of rakubrew^
[Coke]: patrickb: github.com/Raku/App-Rakubrew/pull/72 19:34
i suppose i could manually create those builds if someone pings me, until we get some sort of build VM that runs darwin-arm64 perl 19:42
s/builds/executables/
20:23 ab5tract left, ab5tract joined 20:34 ab5tract left 20:35 ab5tract joined 20:45 ab5tract left 21:18 squashable6 left 21:21 squashable6 joined 22:28 epony left