| [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 | |