23 Oct 2026
[Coke] I think both sides are reasonable there, just want things written down so there's no confusion. 19:45
japhb Working on that. Sadly $day-job is having a heavy week. :-( 21:19
[Coke] blin clear through NEW=c1920c0953 23:54
24 Oct 2026
Geth rakudo/lizmat-93: 0ea0699e96 | (Elizabeth Mattijsen)++ | 2 files
Streamline .sort(&mapper)

  - 0,1,2 elem lists within noise, tending to be 1% faster
  - 3..7 elem lists 15% - 0% slower
  - 8..* elems 7% .. 60% faster
This is basically achieved by streamlining the logic which determines ... (11 more lines)
12:40
rakudo: lizmat++ created pull request #6874:
Streamline .sort(&mapper)
12:41
rakudo/lizmat-93: c1597a215a | (Elizabeth Mattijsen)++ | src/core.c/Rakudo/Sorting.rakumod
Pre-size native int array with indices

This doesn't really add any overhead for small numbers, but improves performance by about 5% for a list of 100000 elements
13:52
rakudo/lizmat-94: 71d66bfb24 | (Elizabeth Mattijsen)++ | src/core.c/List.rakumod
Make List/Array.sum about 14% faster

By replacing repeated nqp::getattr calls by a lowered lexical
14:55
rakudo: lizmat++ created pull request #6875:
Make List/Array.sum about 14% faster
14:56
rakudo/lizmat-95: aef8909009 | (Elizabeth Mattijsen)++ | src/core.c/List.rakumod
Make List/Array.EXISTS-POS(uint) (about 3% faster)

Reorganize code a bit
   - First check if $!todo is concrete (it usually isn't) so that
   the more expensive nqp::isge_i is usually not done
   - only one actual nqp::existspos
... (6 more lines)
17:55
rakudo: lizmat++ created pull request #6876:
Make List/Array.EXISTS-POS(uint) (about 3% faster)
rakudo/lizmat-96: 25c22411d2 | (Elizabeth Mattijsen)++ | src/core.c/List.rakumod
Make List/Array.EXISTS-POS(Int:D) (about 70% faster)

  - First check negativity of index and existence of refified
  - Then check if $!todo is concrete (it usually isn't) so that the more expensive nqp::isge_i is usually not done
  - only one actual nqp::existspos
Reduce bytecode size (568 -> 472)
  - fewer nqp::getattr, more lowered lexical accesses
  - remove return constraint: nqp::hllbool() can only return Bool:D
This actually gets neatly inlined and thus much faster
18:36
rakudo: lizmat++ created pull request #6877:
Make List/Array.EXISTS-POS(Int:D) (about 70% faster)
rakudo/lizmat-97: 0f92690834 | (Elizabeth Mattijsen)++ | src/core.c/List.rakumod
Reduce List.FLATTENABLE_LIST size (364 -> 340)

  - No performance change, just slightly easier to inline
  - De-nqpify code, pure HLL from now
19:28
rakudo: lizmat++ created pull request #6878:
Reduce List.FLATTENABLE_LIST size (364 -> 340)
19:29
25 Oct 2026
lizmat bisectable6: dd *[0;0] 08:31
bisectable6 lizmat, Will bisect the whole range automagically because no endpoints were provided, hang tight
lizmat, Output on all releases: gist.github.com/1d0bdb492874fb650e...c5b64047d2 08:32
lizmat, Bisecting by output (old=2026.08 new=2026.09) because on both starting points the exit code is 0
lizmat, bisect log: gist.github.com/ddc2a534951bcad82a...2ff3c1b443
lizmat, (2026-09-22) github.com/rakudo/rakudo/commit/f0...b3348dbcb0
lizmat, Output on all releases and bisected commits: gist.github.com/8e1f69ca4cdf663393...690e0e77e3
lizmat hmmm
apogee_ntv github.com/rakudo/rakudo/issues/6881 15:20
Geth rakudo/lizmat-98: 0d946b2f66 | (Elizabeth Mattijsen)++ | src/core.c/List.rakumod
Make List.join upto 12% faster

  - Streamline a bit by losing outer nqp::stmts, no longer needed
  - Use lowered lexical instead of nqp::getattr most of the time
FWIW, many other approaches were tried, but alas none of them succeeded in providing better performance
16:24
rakudo/lizmat-98: 2fc2499629 | (Elizabeth Mattijsen)++ | src/core.c/List.rakumod
Use presized IterationBuffer for better performance

Turns out dealing with HLL Str values, it's better to put them into an Opaque list rather than in a native str list
rakudo: lizmat++ created pull request #6882:
Make List.join upto 40% faster
16:26
rakudo: m-doughty++ created pull request #6883:
#6881 - Read %*ENV<COMSPEC> when %*ENV<ComSpec> is not present (i.e. MSYS2)
17:06
linkable6 RAKUDO#6881 [open]: github.com/rakudo/rakudo/issues/6881 Windows: `shell()` fails when the environment contains `COMSPEC` instead of `ComSpec` (MSYS2)