[00:29] <[Coke]> 8dccf3acb1 results pushed.

[00:29] <linkable6> (2026-09-25) https://github.com/rakudo/rakudo/commit/8dccf3acb1 RakuAST: call AT-POS itself for an array subscripted by a native int

[00:29] <[Coke]> 41 failures

[00:31] <[Coke]> starting your branch run

[01:52] <[Coke]> no surprises 38%

[03:19] <ugexe> https://github.com/rakudo/rakudo/commit/a60447bb592a55d29ea73b2fc256850ede56b5e7 - not understanding the test is not a reason to todo it

[03:20] <ugexe> im pretty sure that commit was part of the recent performance regressions

[03:20] <ugexe> its since been fixed again as those todo marked tests now pass, but the test was there precisely to prevent that type of performance regression

[03:27] <ugexe> i guess it was because it was being run with a legacy built core and rakuast runtime

[03:27] <Geth> ¦ rakudo: ugexe++ created pull request #6738: RakuAST: unmark the native condition QAST tests as todo

[03:27] <Geth> ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/6738

[03:28] <ugexe> so that commit couldn't have caused performance regression, it just removed test coverage

[03:56] <Geth> ¦ rakudo: ugexe++ created pull request #6739: RakuAST: Make the test suite pass with the optimizer off

[03:56] <Geth> ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/6739

[04:34] <Geth> ¦ rakudo: ugexe++ created pull request #6740: RakuAST: let a my $_ shadow a topic bound from the enclosing scope

[04:34] <Geth> ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/6740

[04:35] <Geth> ¦ rakudo/main: 81bd2b75c3 | (Nick Logan)++ (committed using GitHub Web editor) | t/08-performance/23-rakuast-native-condition.t

[04:35] <Geth> ¦ rakudo/main: RakuAST: unmark the native condition QAST tests as todo (#6738)

[04:35] <Geth> ¦ rakudo/main: 

[04:35] <Geth> ¦ rakudo/main: a60447bb59 marked four tests in 23-rakuast-native-condition.t as todo

[04:35] <Geth> ¦ rakudo/main: because they failed in the build it was tested against. That build had

[04:35] <Geth> ¦ rakudo/main: a CORE compiled by the legacy frontend, which was still the default at

[04:35] <Geth> ¦ rakudo/main: the time, running under the RakuAST frontend via RAKUDO_RAKUAST=1. The

[04:35] <Geth> ¦ rakudo/main: native comparison inlining these tests check for needs a RakuAST built

[04:35] <Geth> ¦ rakudo/main: <…commit message has 5 more lines…>

[04:35] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/81bd2b75c3

[05:16] <Geth> ¦ rakudo: ugexe++ created pull request #6741: RakuAST: keep .WHAT of a raw VM value as the VM type

[05:16] <Geth> ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/6741

[07:08] *** ShimmerFairy left
[07:08] *** ShimmerFairy joined
[08:08] <ab5tract> ugexe: I keep imagining that one day I'll get around to re-writing Feed to be fully RakuAST instead of direct QAST-iness

[11:02] * lizmat congratulates ugexe on getting the BinaryHeap benchmark within noise or better

[11:12] <Geth> ¦ rakudo/main: 223946a54f | (Nick Logan)++ (committed using GitHub Web editor) | 5 files

[11:12] <Geth> ¦ rakudo/main: RakuAST: keep .WHAT of a raw VM value as the VM type

[11:12] <Geth> ¦ rakudo/main: 

[11:12] <Geth> ¦ rakudo/main: Previously ApplyPostfix and Term::TopicCall wrapped the result of every

[11:12] <Geth> ¦ rakudo/main: method-like postfix in hllize, including the special ops WHAT, HOW, WHO,

[11:12] <Geth> ¦ rakudo/main: WHERE, VAR, REPR and DEFINITE that compile to a primitive op rather than

[11:12] <Geth> ¦ rakudo/main: a method call. Hllizing the type object of a raw VM array maps it to

[11:12] <Geth> ¦ rakudo/main: List, so `nqp::list().WHAT` returned List while the value itself was a

[11:12] <Geth> ¦ rakudo/main: <…commit message has 11 more lines…>

[11:12] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/223946a54f

[11:15] <Geth> ¦ rakudo/main: 1ebe99f45b | (Nick Logan)++ (committed using GitHub Web editor) | 3 files

[11:15] <Geth> ¦ rakudo/main: RakuAST: let a my $_ shadow a topic bound from the enclosing scope

[11:15] <Geth> ¦ rakudo/main: 

[11:15] <Geth> ¦ rakudo/main: Previously a scope whose topic is bound from the enclosing scope, such

[11:15] <Geth> ¦ rakudo/main: as an EVAL unit, a for loop body with a signature or a block with a

[11:15] <Geth> ¦ rakudo/main: placeholder parameter, treated a my $_ inside it as a redeclaration of

[11:15] <Geth> ¦ rakudo/main: that topic. The declaration then declared nothing of its own and named

[11:15] <Geth> ¦ rakudo/main: the topic, so `EVAL q[my $_ = 6]` overwrote the caller's $_ and warned

[11:15] <Geth> ¦ rakudo/main: <…commit message has 9 more lines…>

[11:15] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/1ebe99f45b

[11:20] <Geth> ¦ rakudo/main: a228c7c099 | (Nick Logan)++ (committed using GitHub Web editor) | 7 files

[11:20] <Geth> ¦ rakudo/main: Accept metamodel types as declared types and as roles to compose

[11:20] <Geth> ¦ rakudo/main: 

[11:20] <Geth> ¦ rakudo/main: Previously `sub f(Metamodel::DefiniteHOW $x) { }` failed to compile

[11:20] <Geth> ¦ rakudo/main: under RakuAST with "Cannot find method 'nominalish' on object of type

[11:20] <Geth> ¦ rakudo/main: Archetypes", and `my Metamodel::ClassHOW $h`, `has Metamodel::ClassHOW

[11:20] <Geth> ¦ rakudo/main: $.h` and `subset S of Metamodel::ClassHOW` failed the same way on both

[11:20] <Geth> ¦ rakudo/main: frontends. `role R does Metamodel::Naming { }` failed on both frontends

[11:20] <Geth> ¦ rakudo/main: <…commit message has 12 more lines…>

[11:20] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/a228c7c099

[11:20] <Geth> ¦ rakudo/main: f520d5f524 | (Nick Logan)++ (committed using GitHub Web editor) | 3 files

[11:20] <Geth> ¦ rakudo/main: RakuAST: call AT-POS itself for a native int operator result index

[11:20] <Geth> ¦ rakudo/main: 

[11:20] <Geth> ¦ rakudo/main: Previously only a native int lexical or an int literal took the direct

[11:20] <Geth> ¦ rakudo/main: AT-POS or ASSIGN-POS call, so an index computed from one, such as

[11:20] <Geth> ¦ rakudo/main: `@a[$pos + 1]`, still went through the setting's subscript routine.

[11:20] <Geth> ¦ rakudo/main: This admits an application of a setting operator whose settled

[11:20] <Geth> ¦ rakudo/main: candidate gave it a native int type, taking its result as the object

[11:21] <Geth> ¦ rakudo/main: <…commit message has 6 more lines…>

[11:21] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/f520d5f524

[11:22] *** finanalyst joined
[11:22] <Geth> ¦ rakudo/main: 1f2362ef2f | (Nick Logan)++ (committed using GitHub Web editor) | 2 files

[11:22] <Geth> ¦ rakudo/main: Keep the Array BIND-POS fast path small enough to inline

[11:22] <Geth> ¦ rakudo/main: 

[11:22] <Geth> ¦ rakudo/main: Previously each BIND-POS candidate carried the reify and storage

[11:22] <Geth> ¦ rakudo/main: creation logic, which put its bytecode over the size MoarVM inlines

[11:22] <Geth> ¦ rakudo/main: without a specialization, so a caller specialized before BIND-POS

[11:22] <Geth> ¦ rakudo/main: became hot never inlined it. This moves everything but a bind into an

[11:22] <Geth> ¦ rakudo/main: already reified slot to a lexical sub the candidates call through a

[11:22] <Geth> ¦ rakudo/main: <…commit message has 6 more lines…>

[11:22] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/1f2362ef2f

[11:24] <Geth> ¦ rakudo/main: 654e125629 | (Nick Logan)++ (committed using GitHub Web editor) | 6 files

[11:24] <Geth> ¦ rakudo/main: RakuAST: type a native assignment as an argument by its variable

[11:24] <Geth> ¦ rakudo/main: 

[11:24] <Geth> ¦ rakudo/main: Previously an assignment to a native variable answered no static type

[11:24] <Geth> ¦ rakudo/main: in argument position, so an operator taking it as an operand kept the

[11:24] <Geth> ¦ rakudo/main: call. This answers the variable's native type for the assignment, and

[11:24] <Geth> ¦ rakudo/main: for parentheses forwarding it, so the operator can be decided at

[11:24] <Geth> ¦ rakudo/main: compile time and compiled to its raw op. The variable's own read

[11:24] <Geth> ¦ rakudo/main: beside the assignment stays deferred behind it, as the inline emitter

[11:24] <Geth> ¦ rakudo/main: already orders an impure operand ahead of a read.

[11:24] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/654e125629

[11:24] <lizmat> [Coke]: I've merged all of ugexe's PRs that I was comfortable with merging

[11:30] <lizmat> I see a fail on t/08-performance/45-rakuast-direct-positional-call.t

[11:30] <lizmat> wondering whether to apply a "todo" there

[11:32] <lizmat> m: my @a; @a[1] [=] 9; dd @

[11:32] <camelia> rakudo-moar e17a1d43b: OUTPUT: «[]␤»

[11:32] <lizmat> m: my @a; @a[1] [=] 9; dd @a

[11:32] <camelia> rakudo-moar e17a1d43b: OUTPUT: «[Any, 9]␤»

[11:33] <lizmat> this produces a useless use worry in RakUAST

[11:33] <lizmat> legacy does not

[11:34] <lizmat> I guess the meta op handling should special case "="

[11:53] <lizmat> afk for a few hours&

[12:48] <[Coke]> ugexe: 40 failures on your branch.

[12:48] <[Coke]> ugexe: https://gist.github.com/coke/df45d660bf01a6b423f8631754189f41 is the failures.md file.

[12:48] <[Coke]> (is that the wrong one? one sec)

[12:49] <[Coke]> ah, you have to look at it raw, the markdown rendered version is... truncated

[12:59] <[Coke]> Let me know if you want the output files as well.

[13:00] <[Coke]> Doesn't look like any module failed on that commit, though!

[13:01] <[Coke]> releasable6: next

[13:01] <releasable6> [Coke], Next release in ≈5 hours. There are no known blockers. 479 out of 541 commits logged

[13:01] <releasable6> [Coke], Details: https://gist.github.com/ff696bda4a8549d51c0e9de33d582f8d

[13:31] <[Coke]> I assume more commits are coming?

[13:33] <ugexe> Yeah there is a broken test I’ll have to fix still. But I just got up so it’ll be a bit 

[13:36] <[Coke]> that's fine. I'll be mostly offline until noon eastern

[14:13] <Geth> ¦ rakudo: ugexe++ created pull request #6742: RakuAST: expect a native int assignment index to call AT-POS itself

[14:13] <Geth> ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/6742

[14:21] <Geth> ¦ rakudo/main: df32415c59 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files

[14:21] <Geth> ¦ rakudo/main: RakuAST: accept an invoked term as a feed stage (#6736)

[14:21] <Geth> ¦ rakudo/main: 

[14:21] <Geth> ¦ rakudo/main: Previously a feed stage had to be a named call or a variable, so feeding

[14:21] <Geth> ¦ rakudo/main: into an invoked term, e.g. `"hello" ==> { .uc }()` or `$code()`, died with

[14:21] <Geth> ¦ rakudo/main: "Only routine calls or variables that can '.append' may appear on either

[14:21] <Geth> ¦ rakudo/main: side of feed operators". The legacy frontend accepts any call there,

[14:21] <Geth> ¦ rakudo/main: including a hyper call like `@code>>.()`, and passes the fed value as its

[14:21] <Geth> ¦ rakudo/main: <…commit message has 5 more lines…>

[14:21] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/df32415c59

[14:24] <Geth> ¦ rakudo: ugexe++ created pull request #6743: Sort a multi candidate typed with Mu after every other type

[14:24] <Geth> ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/6743

[14:25] <Geth> ¦ rakudo/main: bb2d7c400c | (Nick Logan)++ (committed using GitHub Web editor) | 6 files

[14:25] <Geth> ¦ rakudo/main: RakuAST: make unfolded junction comparisons match autothreading (#6737)

[14:25] <Geth> ¦ rakudo/main: 

[14:25] <Geth> ¦ rakudo/main: Previously a comparison against a junction in boolean position, such as

[14:25] <Geth> ¦ rakudo/main: `$x == 1|2`, unfolded to `$x == 1 || $x == 2` whenever the other operand

[14:25] <Geth> ¦ rakudo/main: was not a junction at compile time. The answer could differ from the

[14:25] <Geth> ¦ rakudo/main: autothreaded one. A Junction held by the other operand threaded inside

[14:25] <Geth> ¦ rakudo/main: the eigenstates instead of in the order the S09 design doc describes, so

[14:25] <Geth> ¦ rakudo/main: <…commit message has 30 more lines…>

[14:25] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/bb2d7c400c

[14:28] <Geth> ¦ rakudo/main: 09dcbe6632 | (Nick Logan)++ (committed using GitHub Web editor) | 4 files

[14:28] <Geth> ¦ rakudo/main: RakuAST: lower placeholder parameters to frame locals (#6733)

[14:28] <Geth> ¦ rakudo/main: 

[14:28] <Geth> ¦ rakudo/main: Previously a placeholder parameter stayed a by-name lexical, since every

[14:28] <Geth> ¦ rakudo/main: occurrence of `$^a` is a declaration node emitting a lexical lookup and

[14:28] <Geth> ¦ rakudo/main: the signature generated for it was never seen by the lowering walk.

[14:28] <Geth> ¦ rakudo/main: This walks that signature ahead of the body, counts each occurrence,

[14:28] <Geth> ¦ rakudo/main: and each plain lookup of the name, as a use of the generated parameter,

[14:28] <Geth> ¦ rakudo/main: and has the placeholder follow the parameter's decision when it emits

[14:28] <Geth> ¦ rakudo/main: its declaration and lookups, so `{ $^a + $^b }` reads locals the way

[14:28] <Geth> ¦ rakudo/main: `-> $a, $b { $a + $b }` does. A placeholder a closure captures keeps

[14:28] <Geth> ¦ rakudo/main: its lexical.

[14:28] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/09dcbe6632

[14:53] <Geth> ¦ rakudo/main: ddc5c5b5fd | (Nick Logan)++ (committed using GitHub Web editor) | t/08-performance/45-rakuast-direct-positional-call.t

[14:53] <Geth> ¦ rakudo/main: RakuAST: expect a native int assignment index to call AT-POS itself (#6742)

[14:53] <Geth> ¦ rakudo/main: 

[14:53] <Geth> ¦ rakudo/main: Previously the direct positional call test expected an assignment to a

[14:53] <Geth> ¦ rakudo/main: native int as the index to keep the general subscript call, as the

[14:53] <Geth> ¦ rakudo/main: assignment answered no static type. Now that a native assignment in

[14:53] <Geth> ¦ rakudo/main: argument position is typed by its variable the index qualifies for the

[14:53] <Geth> ¦ rakudo/main: direct call, so the test pins that.

[14:53] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/ddc5c5b5fd

[15:13] <Geth> ¦ rakudo/main: 7 commits pushed by (Nick Logan)++

[15:13] <Geth> ¦ rakudo/main: 146b8ed2b7 | RakuAST: give an EVAL unit the caller's $/ for its closures

[15:13] <Geth> ¦ rakudo/main: ebd6b8e963 | Let a command line option override the same one from RAKUDO_OPT

[15:13] <Geth> ¦ rakudo/main: 716a126e34 | Throw X::Parameter::RW for a native value to a native rw parameter

[15:13] <Geth> ¦ rakudo/main: d5b534fb1c | Skip tests that observe the optimize phase when it is off

[15:13] <Geth> ¦ rakudo/main: 0cf2af9be1 | RakuAST: keep an implicit that a my declaration names

[15:13] <Geth> ¦ rakudo/main: 8a7e9178de | Add CI jobs that run make test and make spectest with the optimizer off

[15:13] <Geth> ¦ rakudo/main: b2aada606f | Merge pull request #6739 from ugexe/ugexe/optimize-off-parity

[15:13] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/compare/ddc5c5b5fd72...b2aada606fc9

[16:19] <ugexe> still have a CI failure to fix yet

[16:33] <Geth> ¦ rakudo: ugexe++ created pull request #6744: RakuAST: keep the native return coercion when the return decont is elided

[16:33] <Geth> ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/6744

[17:43] <japhb> ugexe: I saw lizmat commenting on you getting a benchmark "within noise".  Where can I see more about that?

[17:55] <ugexe> https://github.com/rakudo/rakudo/issues/6712

