[Coke] 8dccf3acb1 results pushed. 00:29
linkable6 (2026-09-25) github.com/rakudo/rakudo/commit/8dccf3acb1 RakuAST: call AT-POS itself for an array subscripted by a native int
[Coke] 41 failures
starting your branch run 00:31
no surprises 38% 01:52
ugexe github.com/rakudo/rakudo/commit/a6...0ede56b5e7 - not understanding the test is not a reason to todo it 03:19
im pretty sure that commit was part of the recent performance regressions 03:20
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
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
ugexe so that commit couldn't have caused performance regression, it just removed test coverage 03:28
Geth rakudo: ugexe++ created pull request #6739:
RakuAST: Make the test suite pass with the optimizer off
03:56
rakudo: ugexe++ created pull request #6740:
RakuAST: let a my $_ shadow a topic bound from the enclosing scope
04:34
rakudo/main: 81bd2b75c3 | (Nick Logan)++ (committed using GitHub Web editor) | t/08-performance/23-rakuast-native-condition.t
RakuAST: unmark the native condition QAST tests as todo (#6738)

a60447bb59 marked four tests in 23-rakuast-native-condition.t as todo because they failed in the build it was tested against. That build had a CORE compiled by the legacy frontend, which was still the default at the time, running under the RakuAST frontend via RAKUDO_RAKUAST=1. The native comparison inlining these tests check for needs a RakuAST built ... (5 more lines)
04:35
rakudo: ugexe++ created pull request #6741:
RakuAST: keep .WHAT of a raw VM value as the VM type
05:16
07:08 ShimmerFairy left, ShimmerFairy joined
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 08:08
lizmat congratulates ugexe on getting the BinaryHeap benchmark within noise or better 11:02
Geth rakudo/main: 223946a54f | (Nick Logan)++ (committed using GitHub Web editor) | 5 files
RakuAST: keep .WHAT of a raw VM value as the VM type

Previously ApplyPostfix and Term::TopicCall wrapped the result of every method-like postfix in hllize, including the special ops WHAT, HOW, WHO, WHERE, VAR, REPR and DEFINITE that compile to a primitive op rather than a method call. Hllizing the type object of a raw VM array maps it to List, so `nqp::list().WHAT` returned List while the value itself was a ... (11 more lines)
11:12
rakudo/main: 1ebe99f45b | (Nick Logan)++ (committed using GitHub Web editor) | 3 files
RakuAST: let a my $_ shadow a topic bound from the enclosing scope

Previously a scope whose topic is bound from the enclosing scope, such as an EVAL unit, a for loop body with a signature or a block with a placeholder parameter, treated a my $_ inside it as a redeclaration of that topic. The declaration then declared nothing of its own and named the topic, so `EVAL q[my $_ = 6]` overwrote the caller's $_ and warned ... (9 more lines)
11:15
rakudo/main: a228c7c099 | (Nick Logan)++ (committed using GitHub Web editor) | 7 files
Accept metamodel types as declared types and as roles to compose

Previously `sub f(Metamodel::DefiniteHOW $x) { }` failed to compile under RakuAST with "Cannot find method 'nominalish' on object of type Archetypes", and `my Metamodel::ClassHOW $h`, `has Metamodel::ClassHOW
  $.h` and `subset S of Metamodel::ClassHOW` failed the same way on both
frontends. `role R does Metamodel::Naming { }` failed on both frontends ... (12 more lines)
11:20
rakudo/main: f520d5f524 | (Nick Logan)++ (committed using GitHub Web editor) | 3 files
RakuAST: call AT-POS itself for a native int operator result index

Previously only a native int lexical or an int literal took the direct AT-POS or ASSIGN-POS call, so an index computed from one, such as
  `@a[$pos + 1]`, still went through the setting's subscript routine.
This admits an application of a setting operator whose settled candidate gave it a native int type, taking its result as the object ... (6 more lines)
11:22 finanalyst joined
Geth rakudo/main: 1f2362ef2f | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
Keep the Array BIND-POS fast path small enough to inline

Previously each BIND-POS candidate carried the reify and storage creation logic, which put its bytecode over the size MoarVM inlines without a specialization, so a caller specialized before BIND-POS became hot never inlined it. This moves everything but a bind into an already reified slot to a lexical sub the candidates call through a ... (6 more lines)
11:22
rakudo/main: 654e125629 | (Nick Logan)++ (committed using GitHub Web editor) | 6 files
RakuAST: type a native assignment as an argument by its variable

Previously an assignment to a native variable answered no static type in argument position, so an operator taking it as an operand kept the call. This answers the variable's native type for the assignment, and for parentheses forwarding it, so the operator can be decided at compile time and compiled to its raw op. The variable's own read beside the assignment stays deferred behind it, as the inline emitter already orders an impure operand ahead of a read.
11:24
lizmat [Coke]: I've merged all of ugexe's PRs that I was comfortable with merging
I see a fail on t/08-performance/45-rakuast-direct-positional-call.t 11:30
wondering whether to apply a "todo" there
m: my @a; @a[1] [=] 9; dd @ 11:32
camelia []
lizmat m: my @a; @a[1] [=] 9; dd @a
camelia [Any, 9]
lizmat this produces a useless use worry in RakUAST 11:33
legacy does not
I guess the meta op handling should special case "=" 11:34
afk for a few hours& 11:53
[Coke] ugexe: 40 failures on your branch. 12:48
ugexe: gist.github.com/coke/df45d660bf01a...1754189f41 is the failures.md file.
(is that the wrong one? one sec)
ah, you have to look at it raw, the markdown rendered version is... truncated 12:49
Let me know if you want the output files as well. 12:59
Doesn't look like any module failed on that commit, though! 13:00
releasable6: next 13:01
releasable6 [Coke], Next release in ≈5 hours. There are no known blockers. 479 out of 541 commits logged
[Coke], Details: gist.github.com/ff696bda4a8549d51c...e33d582f8d
[Coke] I assume more commits are coming? 13:31
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:33
[Coke] that's fine. I'll be mostly offline until noon eastern 13:36
Geth rakudo: ugexe++ created pull request #6742:
RakuAST: expect a native int assignment index to call AT-POS itself
14:13
rakudo/main: df32415c59 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
RakuAST: accept an invoked term as a feed stage (#6736)

Previously a feed stage had to be a named call or a variable, so feeding into an invoked term, e.g. `"hello" ==> { .uc }()` or `$code()`, died with
  "Only routine calls or variables that can '.append' may appear on either
side of feed operators". The legacy frontend accepts any call there, including a hyper call like `@code>>.()`, and passes the fed value as its ... (5 more lines)
14:21
rakudo: ugexe++ created pull request #6743:
Sort a multi candidate typed with Mu after every other type
14:24
rakudo/main: bb2d7c400c | (Nick Logan)++ (committed using GitHub Web editor) | 6 files
RakuAST: make unfolded junction comparisons match autothreading (#6737)

Previously a comparison against a junction in boolean position, such as
  `$x == 1|2`, unfolded to `$x == 1 || $x == 2` whenever the other operand
was not a junction at compile time. The answer could differ from the autothreaded one. A Junction held by the other operand threaded inside the eigenstates instead of in the order the S09 design doc describes, so ... (30 more lines)
14:25
rakudo/main: 09dcbe6632 | (Nick Logan)++ (committed using GitHub Web editor) | 4 files
RakuAST: lower placeholder parameters to frame locals (#6733)

Previously a placeholder parameter stayed a by-name lexical, since every occurrence of `$^a` is a declaration node emitting a lexical lookup and the signature generated for it was never seen by the lowering walk. This walks that signature ahead of the body, counts each occurrence, and each plain lookup of the name, as a use of the generated parameter, and has the placeholder follow the parameter's decision when it emits its declaration and lookups, so `{ $^a + $^b }` reads locals the way
  `-> $a, $b { $a + $b }` does. A placeholder a closure captures keeps
its lexical.
14:28
rakudo/main: ddc5c5b5fd | (Nick Logan)++ (committed using GitHub Web editor) | t/08-performance/45-rakuast-direct-positional-call.t
RakuAST: expect a native int assignment index to call AT-POS itself (#6742)

Previously the direct positional call test expected an assignment to a native int as the index to keep the general subscript call, as the assignment answered no static type. Now that a native assignment in argument position is typed by its variable the index qualifies for the direct call, so the test pins that.
14:53
rakudo/main: 7 commits pushed by (Nick Logan)++ 15:13
ugexe still have a CI failure to fix yet 16:19
Geth rakudo: ugexe++ created pull request #6744:
RakuAST: keep the native return coercion when the return decont is elided
16:33
japhb ugexe: I saw lizmat commenting on you getting a benchmark "within noise". Where can I see more about that? 17:43
ugexe github.com/rakudo/rakudo/issues/6712 17:55