Geth rakudo/main: bd5bab3cfe | (Nick Logan)++ (committed using GitHub Web editor) | 4 files
Clean up all generated build artifacts on make clean (#6575)

Previously make clean removed the bytecode under blib/Perl6 but left blib/Raku in place, so Grammar and Actions survived a clean and could be picked up by a later build. CLEANUPS_ALL now covers BLIB_RAKUDO_R alongside BLIB_RAKUDO, and the js backend cleanup list gains the matching source map entry. ... (5 more lines)
01:25
rakudo/main: db40e8ca9d | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
Share the revision gate mixin across gated routines (#6573)

Previously every `is revision-gated` application parameterized the is-revision-gated role with a freshly computed Int. Parameterizations intern by argument identity, and during the setting build each site's revision Int is a distinct object, so every gated routine minted its own curried role, mixin type, and mixin cache type, all serialized into the ... (6 more lines)
rakudo/main: 7070da8300 | (Nick Logan)++ (committed using GitHub Web editor) | 4 files
RakuAST: generate the POPULATE method from the build plan (#6559)

Previously only the legacy frontend implemented the metamodel's generate_buildplan_executor hook, so every class it compiled got a POPULATE submethod compiled from its build plan while a class the RakuAST frontend compiled fell back to Mu.POPULATE, which interprets the plan on every object construction. This implements the hook on ... (17 more lines)
rakudo/main: d88b94ac58 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
Cache interpolated regex compilations by pattern source (#6568)

Previously a string interpolated into a regex was compiled with EVAL and the resulting regex was cached by mixing a role into the string object itself. Code such as <{ %h.keys.join("|") }> produces a new string object on every match attempt, so every attempt compiled the pattern again. MoarVM never deallocates bytecode, so long running ... (18 more lines)
01:27
rakudo/main: 3b6a4052a3 | (Nick Logan)++ | 2 files
Keep Range integer bounds from leaking a Failure

Previously int-bounds decided whether the endpoints fit integer bounds by asking each of them for .Int and checking the result was an Int. An endpoint with no integer value fails there, and nothing marked that Failure handled, so the garbage collector reported it as an unhandled Failure in DESTROY. Summing an endless Range was enough to produce one. ... (10 more lines)
01:29
rakudo/main: ac2ce1c1ce | (Nick Logan)++ | 2 files
Answer reductions that do not need to reach the end

Previously every reduction folded its values one at a time until they ran out, so a reduction over values that never run out never returned. Some of those reductions have their answer well before the end.
A short-circuit operator settles on a value that no further operand can ... (33 more lines)
rakudo/main: 9bbff6bde2 | (Nick Logan)++ (committed using GitHub Web editor) | 4 files
Merge pull request #6576 from ugexe/ugexe/reduce-short-circuit-infinite

Answer reductions over endless sequences
rakudo/main: ec663ef241 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
Merge pull request #6572 from ugexe/ugexe/rakuast-name-stub-through-container

RakuAST: name stub packages without their container
01:59 guifa left 02:09 guifa joined 02:59 guifa left 03:11 guifa joined 03:22 apogee_ntv left 03:23 apogee_ntv joined